# @ephox/sand 中文文档

规范地址：https://npmcn.com/package/%40ephox/sand/

版本：8\.0\.0
npm 元数据更新时间：2026-03-31T04:20:31.752Z
中文译文更新时间：2026-11-13T19:29:50.248Z
软件包许可：GPL-2\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ephox/sand
原文对照：https://npmcn.com/package/%40ephox/sand/?lang=original
项目主页：https://github.com/tinymce/tinymce#readme
源码仓库：https://github.com/tinymce/tinymce

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：126 kB，105 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2016-12-20T05:36:40.225Z
- 最新版本发布：2026-03-31T04:20:31.633Z
- 近 30 天下载量：20346（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：64（近 12 个月 1 个）

## 中文简介

平台检测库

## 安装

```sh
npm install @ephox/sand
```

也可以使用：`pnpm add @ephox/sand`、`yarn add @ephox/sand`、`bun add @ephox/sand`

## README

# 说明

`sand` 是一个处理平台检测和本地浏览器功能标准化的库。 它没有捆绑任何命令。 这只是一组模块.

# 安装

`sand` 可作为 `npm` 软件包。 您可以通过 npm 软件包安装 `@ephox/sand`

## 从 npm 安装

`npm install @ephox/sand`。 。 。 .

# 使用 API

项目 `sand` 有两个目的:平台检测和全球包装.

## 平台检测

为了检测当前平台, 执行 `PlatformDetection.detect()`。这将返回一个包含三个部分的对象: `browser`, (中文(简体) ), `os`,以及 `device`。 。 。 .

```javascript
var platform = PlatformDetection.detect();
console.log('browser', platform.browser);
console.log('os', platform.os);
console.log('device', platform.device);
```

说明, `PlatformQuery` 引入了为共同平台查询提供方便的方法,并管理了检测响应本身的内部结构.

### 浏览器

这个 `browser` 字段有以下信息:

-   `current`: 浏览器作为字符串的名称
-   `version`(单位:千美元) `(major, minor)` 代表版本的 tuple
-   `isEdge`: 返回真假。 浏览器是 _微软边缘_
-   `isChromium`: 返回真假。 浏览器是 _铬基_
-   `isIE`: 返回真假。 浏览器是 _Internet 浏览器_
-   `isOpera`: 返回真假。 浏览器是 _歌剧_
-   `isFirefox`: 返回真假。 浏览器是 _火花_
-   `isSafari`: 返回真假。 浏览器是 _萨法里_

```javascript
var platform = PlatformDetection.detect();
var isFF = platform.browser.isFirefox();
```

### 操作系统(OS)

这个 `os` 字段有以下信息:

-   `current`: OS 作为字符串的名称
-   `version`(单位:千美元) `(major, minor)` 代表版本的 tuple
-   `isWindows`: 返回真假。 OS 是 Windows
-   `isiOS`: 返回真假。 OS 是 iOS
-   `isAndroid`: 返回真假。 OS 是 Android
-   `isOSX`: 返回真假。 OS是 OSX
-   `isLinux`: 返回 true if. OS 是 Linux
-   `isSolaris`: 返回真假。 OS是 Solaris
-   `isFreeBSD`: 返回真假。 OS是 FreeBSD

```javascript
var platform = PlatformDetection.detect();
var isWin = platform.os.isWindows();
```

### 设备

这个 `device` 字段有以下信息:

-   `isiPad`: 返回 true if. 设备是 iPad
-   `isiPhone`: 返回 true if. 设备是 iPhone
-   `isTablet`: 返回真假, 设备是平板电脑
-   `isPhone`: 返回真实的if。 设备是 Phone
-   `isTouch`: 返回真假。 设备是触摸
-   `isAndroid`: 返回 true iff. 设备为 Android
-   `isiOS`: 返回 true if. 设备是 iOS
-   `isWebView`: 返回 true if. 设备是一个 WebView

```javascript
var platform = PlatformDetection.detect();
var isPh = platform.device.isPhone();
```

## 全球包装器

这些包裹允许依赖仅存在于更新的浏览器上的全域,在这些浏览器中,正常引用会使脚本无法加载. 它们在访问环球时不提供任何安全性;据推测,辅助代码知道当前浏览器是否支持环球. 它们只是推迟参考的方法.

### 块

[https://developer.mozila.org/en-US/docs/Web/API/Blob 互联网档案馆的存檔,存档日期2013-12-02](https://developer.mozilla.org/en-US/docs/Web/API/Blob)

### 活动

[https://developer.mozila.org/en-US/docs/Web/Guide/Events/Creating 并 triggering events 互联网档案馆的存檔,存档日期2014-12-21](https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events)

### 文件阅读器

[https://developer.mozilla.org/en-US/docs/Web/API/FileReader 互联网档案馆的存檔,存档日期2013-12-21](https://developer.mozilla.org/en-US/docs/Web/API/FileReader)

### 格式数据

[https://developer.mozila.org/en-US/docs/Web/API/FormData 互联网档案馆的存檔,存档日期2013-12-21](https://developer.mozilla.org/en-US/docs/Web/API/FormData)

### HTML 元素

[https://developer.mozilla.org/en/docs/Web/API/HTMLElement 互联网档案馆的存檔,存档日期2011-12-21](https://developer.mozilla.org/en/docs/Web/API/HTMLElement)

-   `HTMLElement.isPrototypeOf(x)`

### 贾森

[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global Objects/JSON 互联网档案馆的存檔,存档日期2013-12-22](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)

-   `JSON.parse(obj)`
-   `JSON.stringify(obj, replacer, space)`

### 节点过滤器

[https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter (英语:](https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter)

### 網址

[https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL 互联网档案馆的存檔,存档日期2013-12-21](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL)

-   `URL.createObjectURL(blob)`
-   `URL.removeObjectURL(u)`

### Uint8 阵列

[https://developer.mozila.org/en-US/docs/Web/API/Uint8Array 互联网档案馆的存檔,存档日期2013-12-02](https://developer.mozilla.org/en-US/docs/Web/API/Uint8Array)

### 窗口

[https://developer.mozilla.org/en/docs/Web/API/window. requestAnimationFrame 页面存档备份,存于互联网档案馆](https://developer.mozilla.org/en/docs/Web/API/window.requestAnimationFrame)

-   `Window.requestAnimationFrame(callback)`
-   `Window.atob(base64)`

### XMLHttp 请求

[https://developer.mozilla.org/en/docs/XMLHttp 请求](https://developer.mozilla.org/en/docs/XMLHttpRequest)

### XML 序列器

[https://developer.mozila.org/en/docs/XML序列器](https://developer.mozilla.org/en/docs/XMLSerializer)

-   `XMLSerializer.serializeToString(node)`

# 运行测试

纱线测试

## 常见问题

### @ephox/sand 是什么？

平台检测库

### 如何安装 @ephox/sand？

在项目目录运行 npm install @ephox/sand，或使用 pnpm add / yarn add / bun add。

### @ephox/sand 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ephox/sand 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @ephox/sand 可以商用吗？

@ephox/sand 使用 GPL-2\.0-or-later 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以兼容的 GPL 许可开源。仅在内部使用、不对外分发时不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @ephox/sand 的下载量有多少？

根据 npm 官方下载统计，@ephox/sand 在 2026/10/14 – 2026/11/12 这 30 天内被下载 20,346 次，日均约 678 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ephox/sand 还在维护吗？

最新版本 8\.0\.0 发布于 2026/03/31（7 个月前）；至今共发布 64 个版本，其中过去 12 个月发布了 1 个；首次发布于 2016/12/20。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

