浏览器(Browser)
常用浏览器方法集合。
使用指引(做什么、何时用)
- 判断运行环境与设备:
isBrowser/isAppleMobileDevice/isWeChatBrowser/getDeviceInfo - 响应式与适配:
getViewportSize/getScreenSize/getDPR/isMobileViewport/onResize - 主题联动:
isDarkMode/getTheme/onThemeChange→ 与 CSS 变量/设计系统联动 - 文本与滚动:
getSelect/scrollToTop→ 基础交互 - 粘贴板:
copyToClipboard→ 分享与复制(自动处理权限/回退)
控制台(Console Ready)
- 文档站已注入对象:
window.browserUtils、window.Http - 直接在 DevTools 调用:
browserUtils.getLocaleInfo('en-GB')、browserUtils.getCommonLocaleTable()、browserUtils.getPublicIP()
能力检测
browserUtils.isBrowser()browserUtils.isAppleMobileDevice()browserUtils.isWeChatBrowser()browserUtils.isTouchDevice()browserUtils.prefersReducedMotion()
选择与滚动
browserUtils.getSelect()获取当前选中文本browserUtils.scrollToTop()平滑滚动到顶部
剪贴板
browserUtils.copyToClipboard(text)
ts
import { browserUtils } from 'nex-lib'
await browserUtils.copyToClipboard('hello')text
true // 或 false,取决于环境权限类名与样式
browserUtils.addClass(el, cls)browserUtils.removeClass(el, cls)browserUtils.toggleClass(el, cls)browserUtils.setStyle(el, styles)browserUtils.getStyle(el, name)
网络信息
browserUtils.getPublicIP()获取公网 IP(依赖外部服务)
设备与 UA
browserUtils.getDeviceInfo()→{ os, browser, isMobile }browserUtils.getUserAgent()browserUtils.getLanguage()
视口与屏幕
browserUtils.getViewportSize()→{ width, height }browserUtils.getScreenSize()→{ width, height }browserUtils.getDPR()→numberbrowserUtils.isMobileViewport()→boolean
ts
import { browserUtils } from 'nex-lib'
browserUtils.getViewportSize()
browserUtils.getScreenSize()
browserUtils.getDPR()
browserUtils.isMobileViewport()json
{ "width": 1200, "height": 800 }
{ "width": 2560, "height": 1440 }
1
false能力检测(Capabilities)
browserUtils.isBrowser()→booleanbrowserUtils.isAppleMobileDevice()→booleanbrowserUtils.isWeChatBrowser()→booleanbrowserUtils.isTouchDevice()→booleanbrowserUtils.prefersReducedMotion()→booleanbrowserUtils.getLanguage()→'zh-CN,en-US,...'browserUtils.getPreferredLocale()→'zh-CN' /'en-US'` 等规范 Locale
ts
import { browserUtils } from 'nex-lib'
browserUtils.isBrowser()
browserUtils.isAppleMobileDevice()
browserUtils.isWeChatBrowser()
browserUtils.isTouchDevice()
browserUtils.prefersReducedMotion()
browserUtils.getLanguage()
browserUtils.getPreferredLocale()text
true
false
false
true
false
zh-CN,en-US
zh-CN选择与滚动(Selection & Scroll)
browserUtils.getSelect()→ 当前选中文本stringbrowserUtils.scrollToTop()→ 平滑滚动到顶部(无返回值)
ts
import { browserUtils } from 'nex-lib'
document.getSelection()?.selectAllChildren(document.body)
browserUtils.getSelect()
browserUtils.scrollToTop()text
"...当前选中文本..."语言与国家对照(Locale Table)
browserUtils.getLocaleInfo(locale?)→ 返回语言/国家的规范信息browserUtils.getCommonLocaleTable()→ 常用 Locale 列表(语言/国家英文名)
ts
import { browserUtils } from 'nex-lib'
browserUtils.getLocaleInfo('zh-CN')
browserUtils.getLocaleInfo('en-GB')
browserUtils.getCommonLocaleTable()json
{"code":"zh-CN","language":{"code":"zh","name":"Chinese"},"country":{"code":"CN","name":"China"}}
{"code":"en-GB","language":{"code":"en","name":"English"},"country":{"code":"GB","name":"United Kingdom"}}
[
{"code":"zh-CN","language":"Chinese","country":"China"},
{"code":"en-US","language":"English","country":"United States"},
{"code":"ja-JP","language":"Japanese","country":"Japan"},
{"code":"ko-KR","language":"Korean","country":"South Korea"}
]IP 获取(Public IP)
browserUtils.getPublicIP()→ 返回公网 IP 字符串(内置超时与重试)
ts
import { browserUtils } from 'nex-lib'
const ip = await browserUtils.getPublicIP()text
"203.0.113.42"主题(Dark/Light)与监听
browserUtils.isDarkMode()→booleanbrowserUtils.getTheme()→'dark' | 'light'browserUtils.onThemeChange(listener)→ 返回取消监听函数
ts
import { browserUtils } from 'nex-lib'
browserUtils.getTheme()
const off = browserUtils.onThemeChange((t) => console.log('theme:', t))
off()text
light