资讯专栏INFORMATION COLUMN

JavaScript BOM——“navigator 对象”的注意要点

Nosee / 492人阅读

摘要:返回指明系统是否处于脱机模式的布尔值。返回使用的默认语言。规定浏览器是否启用数据污点。上述代码用来检测中的插件,但标识符不同,如一般为。如其中的表示源,由系统自动插入。接收三个参数要处理的协议或,处理该协议的页面的和应用程序的名称。

navigator 简单介绍

下面是存在于所有浏览器中的属性和方法(注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。):

属性:
appCodeName    返回浏览器的代码名。
appMinorVersion    返回浏览器的次级版本。
appName    返回浏览器的名称。
appVersion    返回浏览器的平台和版本信息。
browserLanguage    返回当前浏览器的语言。
cookieEnabled    返回指明浏览器中是否启用 cookie 的布尔值。
cpuClass    返回浏览器系统的 CPU 等级。
onLine    返回指明系统是否处于脱机模式的布尔值。
platform    返回运行浏览器的操作系统平台。
systemLanguage    返回 OS 使用的默认语言。
userAgent    返回由客户机发送服务器的 user-agent 头部的值。
userLanguage    返回 OS 的自然语言设置。

方法:
javaEnabled()    规定浏览器是否启用 Java。
taintEnabled()    规定浏览器是否启用数据污点 (data tainting)。

如:

console.log(window.navigator);

/*
[Log] Navigator (repetition.html, line 14)
appCodeName: "Mozilla"
appName: "Netscape"
appVersion: "5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) (Coda, like Safari)"
cookieEnabled: true
geolocation: Geolocation
language: "zh-cn"
mimeTypes: MimeTypeArray
onLine: true
platform: "MacIntel"
plugins: PluginArray
product: "Gecko"
productSub: "20030107"
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) (Coda, like Safari)"
vendor: "Apple Computer, Inc."
vendorSub: ""
__proto__: NavigatorPrototype
*/

具体检测显示网页的浏览器类型将在下一章节讨论。

检测插件
function hasPlugin(name){
    name = name.toLowerCase();
    for (var i = 0; i < navigator.plugins.length; i ++){
        if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
            return true;
        }
    }
    return false;
}

上述代码在 IE 中无效。

function hasIEPlugin(name){
    try{
        new ActiveXObject(name);
        return true;
    }catch(ex){
        return false;
    }
}

上述代码用来检测 IE 中的插件,但标识符不同,如 Flash 一般为 ShockwaveFlash.ShockwaveFlash。

通用代码如下(如检测Flash):

function hasPlugin(name){
    name = name.toLowerCase();
    for (var i = 0; i < navigator.plugins.length; i ++){
        if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
            return true;
        }
    }
    return false;
}

function hasIEPlugin(name){
    try{
        new ActiveXObject(name);
        return true;
    }catch(ex){
        return false;
    }
}

function hasFlash(){
    var result = hasPlugin("Flash");
    if (!result){
        result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
    }
    return result;
}

console.log(hasFlash()) //true
注册处理程序

Firefox 2 为 navigator 对象新增了 registerContentHandler()registerProtocolHandler()(这两个方法是在 HTML5 中定义的,相关内容以后讨论)

registerContentHandler()接收三个参数:要处理的 MIME 类型,可以处理该 MIME 类型的页面 URL 以及应用程序的名称。如:

navigator.registerContentHandler("application/rss+xml","http://www.somereader.com?feed=%s","Some Reader");
// 其中的 %s 表示 RSS 源 URL,由系统自动插入。

registerProtocolHandler()接收三个参数:要处理的协议(mailto 或 ftp),处理该协议的页面的 URL 和应用程序的名称。如:

navigator.registerProtocolHandler("mailto","http://www.somemailclient.com?cmd=&s","Some Mail Client");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78223.html

相关文章

  • JavaScriptBOM

    摘要:描述表示为浏览器对象模型是由一系列对象构成的,这些对象可以理解为是浏览器提供的对象表示当前运行页面的浏览器对象既是访问浏览器的窗口,也是规范中的全局对象对象测试对象全局变量函数作为全局变量或函数使用的话全局变量是对象的属性函数是对象的方法预 BOM 描述 BOM表示为浏览器对象模型 BOM是由一系列对象构成的,这些对象可以理解为是浏览器提供的 Window对象 表示当前运行HTM...

    nifhlheimr 评论0 收藏0
  • javascript bom

    摘要:包含是浏览器对象,全拼为包含什么包含以下打开窗口要打开的地址新窗口的位置默认链接到新页面关闭窗口只能关闭从网页中打开的页面系统对话框系统弹窗确认取消弹窗弹出能输入文本的对话框定时器定时器清除间接同上对象包含大量有关浏览器的信息,在检测浏 javascript包含(ecmascriptes3,5,6)bom dom Bom是浏览器对象,全拼为Browser Object Model Bo...

    venmos 评论0 收藏0
  • javascript bom

    摘要:包含是浏览器对象,全拼为包含什么包含以下打开窗口要打开的地址新窗口的位置默认链接到新页面关闭窗口只能关闭从网页中打开的页面系统对话框系统弹窗确认取消弹窗弹出能输入文本的对话框定时器定时器清除间接同上对象包含大量有关浏览器的信息,在检测浏 javascript包含(ecmascriptes3,5,6)bom dom Bom是浏览器对象,全拼为Browser Object Model Bo...

    zhangke3016 评论0 收藏0
  • JavaScript 基础知识 - BOM

    摘要:在中我们需要掌握定时器。定时器不是我们调用,我们只需要把函数的地址传过去,时间到了,会自己调用。参数延时的时间单位毫秒返回定时器的,用于清除示例代码延时定时器秒后将执行的代码。 showImg(https://segmentfault.com/img/remote/1460000012575821?w=1920&h=1080); 前言 本篇文章是JavaScript基础知识的BOM篇,...

    garfileo 评论0 收藏0
  • JavaScript 基础知识 - BOM

    摘要:在中我们需要掌握定时器。定时器不是我们调用,我们只需要把函数的地址传过去,时间到了,会自己调用。参数延时的时间单位毫秒返回定时器的,用于清除示例代码延时定时器秒后将执行的代码。 showImg(https://segmentfault.com/img/remote/1460000012575821?w=1920&h=1080); 前言 本篇文章是JavaScript基础知识的BOM篇,...

    Object 评论0 收藏0

发表评论

0条评论

Nosee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<