• ExtJS浏览器对象模型BOM——命名空间和用户代理对象、Cookie


    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(),就能将字符串转换为原来的对象类型。

     
  • 相关阅读:
    2020/1/27 代码审计学习-宽字节注入与二次注入
    2020/1/27代码审计学习之SQL注入漏洞
    2020/1/27代码审计学习之审计涉及的超全局变量
    2019总结与最近
    鸽一天
    [极客大挑战 2019]Knife
    [LuoguP1438]无聊的数列(差分+线段树/树状数组)
    [BJWC2018]最长上升子序列
    笙上月
    笔下梅
  • 原文地址:https://www.cnblogs.com/0603ljx/p/ExtJS.html
Copyright © 2020-2023  润新知