O2 平台全局对象 API 文档
由 0x400 发布于
### 1. version
- **类型**:`Object`
- **描述**:平台版本信息
- **语法**:`var v = o2.version.v;`
### 2. session
- **类型**:`Object`
- **描述**:平台运行环境
- **属性**:
- `isDebugger`:`Boolean`,是否是调试模式
- `isMobile`:`Boolean`,是否是移动端环境
- **语法**:
```javascript
var debuggerMode = o2.session.isDebugger;
var isMobile = o2.session.isMobile;
```
### 3. language
- **类型**:`String`
- **描述**:语言环境名称
- **语法**:`var lp = o2.language;`
## 二、静态方法
### 1. debug()
- **描述**:使平台进入调试模式
- **语法**:`o2.debug();`
### 2. typeOf(obj) → `String`
- **描述**:判断一个任意参数的类型
- **参数**:
- `obj`:`Object`(可选),要检查的对象
- **返回值**:
```
'element' | 'elements' | 'textnode' | 'whitespace' | 'arguments' | 'array' | 'object' | 'string' | 'number' | 'date' | 'boolean' | 'function' | 'regexp' | 'collection' | 'window' | 'document' | 'domevent' | 'null'
```
- **示例**:
```javascript
var myString = 'hello';
o2.typeOf(myString); // 返回 "string"
```
### 3. uuid() → `String`
- **描述**:生成一个唯一的 UUID
- **语法**:`var id = o2.uuid();`
### 4. filterUrl(url) → `String`
- **描述**:解析平台内的 URL(处理反向代理路径转发)
- **参数**:
- `url`:`String`(可选),要解析的 URL
- **示例**:
```javascript
var attachmentUrl = "http://qmx.o2oa.net:20020/x_processplatform_assemble_surface/jaxrs/attachment/{attid}/work/{workid}";
var parsedUrl = o2.filterUrl(attachmentUrl);
// 返回 "http://qmx.o2oa.net/dev/app/x_processplatform_assemble_surface/jaxrs/attachment/{attid}/work/{workid}"
```
### 5. load(urls, options, callback)
- **描述**:引入外部 JavaScript 文件
- **参数**:
- `urls`:`String | Array`(可选),JS 文件 URL 或数组
- `options`:`Object`(可选),配置参数:
```javascript
{
noCache: Boolean, // 是否使用缓存(默认 true)
reload: Boolean, // 是否强制重新加载(默认 false)
sequence: Boolean, // 是否按顺序加载(默认 false)
type: String, // 脚本类型(默认 "text/javascript")
baseUrl: String, // 基础路径(默认 "")
doc: Document // 目标 document(默认当前)
}
```
- `callback`:`function`(可选),加载完成回调
- **示例**:
```javascript
o2.load(["js/file1.js", "js/file2.js"], { reload: true, sequence: true }, () => {
// 文件加载完成
});
```
### 6. loadCss(urls, options, callback)
- **描述**:引入外部 CSS 资源
- **参数**:
- `urls`:`String | Array`(可选),CSS 文件 URL 或数组
- `options`:`Object`(可选),配置参数:
```javascript
{
noCache: Boolean, // 是否使用缓存(默认 true)
reload: Boolean, // 是否强制重新加载(默认 false)
sequence: Boolean, // 是否按顺序加载(默认 false)
dom: Element // 生效 DOM 元素(默认 null,全局生效)
}
```
- `callback`:`function`(可选),加载完成回调
- **示例**:
```javascript
o2.loadCss(["css/style1.css", "css/style2.css"], { dom: document.getElementById("content") }, () => {
// CSS 加载完成
});
```
### 7. loadCssText(cssText, options, callback)
- **描述**:引入 CSS 文本内容
- **参数**:
- `cssText`:`String`(可选),CSS 文本
- `options`:`Object`(可选),配置参数:
```javascript
{
dom: Element // 生效 DOM 元素(默认 null,全局生效)
}
```
- `callback`:`function`(可选),加载完成回调
- **示例**:
```javascript
var css = ".myClass { color: red; }";
o2.loadCssText(css, { dom: document.getElementById("content") }, () => {
// CSS 加载完成
});
```
### 8. removeCss(urls)
- **描述**:移除通过 `loadCss` 引入的 CSS 资源
- **参数**:
- `urls`:`String | Array`(可选),要移除的 CSS 文件 URL 或数组
- **示例**:
```javascript
o2.removeCss(["css/style1.css", "css/style2.css"]);
```
### 9. loadHtml(urls, options, callback)
- **描述**:引入外部 HTML 模板并渲染到指定 DOM
- **参数**:
- `urls`:`String | Array`(可选),HTML 文件 URL 或数组
- `options`:`Object`(可选),配置参数:
```javascript
{
noCache: Boolean, // 是否使用缓存(默认 true)
reload: Boolean, // 是否强制重新加载(默认 false)
sequence: Boolean, // 是否按顺序加载(默认 false)
dom: Element, // 目标 DOM 元素
position: String, // 插入位置(默认 'beforeend')
module: Object, // 绑定模块对象
bind: Object, // 绑定数据对象
evalScripts: Boolean, // 是否执行脚本(默认 false)
baseUrl: String // 基础路径(默认 "")
}
```
- `callback`:`function`(可选),加载完成回调
- **示例**:
```javascript
var data = { title: "标题", description: "内容" };
var module = { handleClick: () => {} };
o2.loadHtml("template.html", { dom: document.getElementById("container"), bind: data, module: module }, () => {
// HTML 加载完成
});
```
### 10. loadHtmlText(html, options)
- **描述**:解析 HTML 文本并渲染到指定 DOM(同 `loadHtml`,直接传入 HTML 内容)
- **参数**:
- `html`:`String`(可选),HTML 文本内容
- `options`:`Object`(可选),配置参数(同 `loadHtml`)
- **示例**:
```javascript
var html = "<div>{{$.title}}</div>";
var data = { title: "动态标题" };
o2.loadHtmlText(html, { dom: document.getElementById("container"), bind: data });
```
### 11. loadAll(modules, options, callback)
- **描述**:同时加载 JS、CSS、HTML 资源
- **参数**:
- `modules`:`Object`(可选),资源配置:
```javascript
{
js: String | Array,
css: String | Array,
html: String | Array
}
```
- `options`:`Object`(可选),HTML 加载配置(同 `loadHtml`)
- `callback`:`function`(可选),加载完成回调
- **示例**:
```javascript
o2.loadAll({
js: "script.js",
css: "style.css",
html: "template.html"
}, { dom: document.getElementById("container") }, () => {
// 所有资源加载完成
});
```
### 12. getDateFromServer(async) → `Date | Promise`
- **描述**:从服务器获取当前时间
- **参数**:
- `async`:`Boolean | function`(可选),异步模式(默认同步)
- **返回值**:
- 同步:`Date` 对象
- 异步:`Promise` 对象
- **示例**:
```javascript
// 同步获取
var serverTime = o2.getDateFromServer();
// 异步获取
o2.getDateFromServer(true).then(d => {
console.log(d);
});
```
### 13. zoom(scale)
- **描述**:对页面进行缩放
- **参数**:
- `scale`:`Number`(可选),缩放比例(1 为原始大小)
- **示例**:
```javascript
o2.zoom(1.5); // 放大到 150%
```
### 14. nextFrame(iterator, callback, firstFrameSize, time) → `Promise`
- **描述**:使用 `requestAnimationFrame` 优化渲染过程
- **参数**:
- `iterator`:`Iterator`,迭代器对象
- `callback`:`function`,每次迭代的回调函数(参数:`value`, `index`)
- `firstFrameSize`:`Number`(可选),首帧迭代次数(默认 100)
- `time`:`Number`(可选),每帧间隔时间(默认 13ms)
- **返回值**:`Promise`,执行完成后兑现
- **示例**:
```javascript
const iterator = { next: () => ({ value: 1, done: false }) };
o2.nextFrame(iterator, (value, index) => {
// 执行 DOM 操作
});
```
评论