BOM(浏览器对象模型(BrowserObjectModel)),允许访问和操控浏览器窗口。研发者通过使用BOM,可移动窗口、更改状态栏文本、执行其它不与页面内容发生直接联系的操作。
本文将从ExtJS中以下四类服务入手:
1,命名空间
2,用户代理对象
3,Cookie
4,定时调用函数(将于下一博文详细陈述)
命名空间
ExtJS的命名空间是在window对象所提供的全局范围内建立相互独立的范围,概念上类似于Java的package。
Ext.namespace("com.baidu"); console.info(typeof com);//object console.info(typeof com.baid);//object
使用Ext.namespace对“com.baidu”字符串进行解析,完成后变成两个对象,一个是com,另一个是com拥有的属性baidu。
凭借Ext.namespace(),实际开发时可以避免工作伙伴或是第三方开发商造成的命名冲突
在项目中可以创建这样的命名空间,从而在各个模块之间读取共享数据时使用,但应该限制为自读变量。如果模块之间要交换数据,最好使用事件机制或是将数据交互交给后台服务器。
用户代理对象
用户代理对象指的是window.navigator.userAgent这个属性,该属性存储用户浏览器的型号、操作系统、渲染引擎的名称等信息,这些都是判断浏览器类型的一些条件。以往,部分浏览器厂商都会在这个属性上做手脚,让脚本误认或是误判断浏览器的类型,因此,程序员必须编写非常复杂的脚本来作出判断。
下面介绍Ext简单的布尔条件表达式
属性 |
说明 |
Ext.isAir |
判断执行环境是否为Adobel AIR |
Ext.isBorderBox |
判断执行的IE浏览器是否处于非严谨(non-strict)模式 |
Ext.isGecko/Ext.isGecko2/Ext.isGecko3 |
判断是否为某个版本的Gecko渲染引擎 |
Ext.isChrome |
判断是否为Google Chrome浏览器 |
Ext.isIE/Ext.isIE6/Ext.isIE7/Ext.isIE8 |
判断是否为IE浏览器 |
Ext.isSafari/Ext.isSafari2/Ext.isSafari3/Ext.isSafari4 |
判断是否为某个版本的Safari浏览器 |
Ext.isWebkit |
判断浏览器是否为Webkit浏览器 |
Ext.isStrict |
判断浏览器是否处于严谨模式 |
Ext.isWindows |
判断用户操作系统为Windows |
Ext.isMac |
判断用户操作系统为Mac |
Ext.isLinux |
判断用户操作系统为Linux |
Cookie
Cookie操作非常简单,只有三个方法:
clear(name) :清除为name设置的值
set(name,value) : 设置name的值为value
get(name) : 得到name设置的值
var simleValue = "a simple string"; var compleValue = { name : "comple", description : "I‘m so complex" } ; Ext.util.Cookies.set(‘simple‘,simpleValue); Ext.util.Cookies.set(‘complex‘,compleValue); Ext.util.Cookies.set(‘complexJSON‘,Ext.encode(complexVaule));
Cookie只能存储文字,如果要存储对象,就必须把对象JSON化,就是调用Ext.encode(),这个方法会将复杂的对象结构转换为字符串,取出时只要爱班字符串丢给Ext.decode(),就能将字符串转换为原来的对象类型。
ExtJS浏览器对象模型BOM——命名空间和用户代理对象、Cookie