第1章 connection[试验]

navigator.connection 是只读的,提供一个NetworkInformation 对象来获取设备的网络连接信息。例如用户设备的当前带宽或连接是否被计量, 这可以用于基于用户的连接来选择高清晰度内容或低清晰度内容。

1.1 使用

下面是一个侦测用户设备连接状态变化的例子:

var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;

var type = connection.type;

function updateConnectionStatus() {

console.log("设备的网络连接从" + type + "变成了" + connection.type);

}

connection.addEventListener('typechange', updateConnectionStatus);

1.2 事件

与online和offline事件有关系。

第2章 plugins

返回一个 PluginArray 类型的对象,包含了当前所使用的浏览器安装的所有插件。该属性不属于任何一个标准。

2.1 使用

下例演示了如何在一个页面上输出浏览器上安装的所有插件。 Plugin对象的属性有: name, filename, description, 和 version:

var L = navigator.plugins.length;

document.write(L.toString().bold() + " Plugin(s)".bold());

document.write("<br>");

document.write("Name | Filename | description".bold());

document.write("<br>");

for(var i=0; i<L; i++) {

document.write(navigator.plugins[i].name);

document.write(" | ");

document.write(navigator.plugins[i].filename);

document.write(" | ");

document.write(navigator.plugins[i].description);

document.write(" | ");

document.write(navigator.plugins[i].version);

document.write("<br>");

}

第3章 mimeTypes

返回一个MimeTypeArray对象,其中包含可被当前浏览器识别的MimeType对象的列表。

mimeTypes 是一个 MimeTypeArray 对象,其中含有 length 属性、item(index) 和 namedItem(name) 方法。

3.1 示例

下面介绍了如何使用mimeTypes:

function isJavaPresent() {

return 'application/x-java-applet' in navigator.mimeTypes;

}

function getJavaPluginDescription() {

var mimetype = navigator.mimeTypes['application/x-java-applet'];

if (mimetype === undefined) {

// no Java plugin present

return undefined;

}

return mimetype.enabledPlugin.description;

}

第4章 serviceWorker[试验]

serviceWorker是navigator的只读属性,返回ServiceWorkerContainer对象,它提供ServiceWorker的注册,删除,升级和通信的访问。

4.1 ServiceWorkerContainer

ServiceWorkerContainer接口为 service worker提供一个容器般的功能,包括对service worker的注册,卸载 ,更新和访问service worker的状态,以及他们的注册者。

相关详情参见MDN网站

第5章 credentials[试验]

credentials属性返回CredentialsContainer接口,该接口可用于特征检测。

if ('credentials' in navigator) {

navigator.credentials.get({password: true})

.then(function(creds) {

//Do something with the credentials.

});

} else {

//Handle sign-in the way you did before.

};

5.1 CredentialsContainer

Credential Management API 的 CredentialsContainer 接口提供了请求 credentials 和通知用户代理(当成功登陆或登出事件发生时)的方法。可通过  Navigator.credentials 获得该接口。

第6章 permissions[试验]

permissions 是 Navigator 读属性,返回一个可用于查询或更新某些APIs(由Permissions API覆盖)的权限状态的对象。

navigator.permissions.query({name:'geolocation'}).then(function(result) {

if (result.state === 'granted') {

showMap();

} else if (result.state === 'prompt') {

showButtonToEnableMap();

}

// 如果被拒绝,请不要做任何操作。

});

参见:Web Permissions API

第7章 geolocation

geolocation 只读属性返回一个 Geolocation 对象,通过这个对象可以访问到设备的位置信息。这允许网站或应用根据用户的位置提供个性化结果。

第8章 mediaDevices

mediaDevices 是 Navigator 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。

'use strict';

// Put variables in global scope to make them available to the browser console.

var video = document.querySelector('video');

var constraints = window.constraints = {

audio: false,

video: true

};

var errorElement = document.querySelector('#errorMsg');

navigator.mediaDevices.getUserMedia(constraints)

.then(function(stream) {

var videoTracks = stream.getVideoTracks();

console.log('Got stream with constraints:', constraints);

console.log('Using video device: ' + videoTracks[0].label);

stream.onended = function() {

console.log('Stream ended');

};

window.stream = stream; // make variable available to browser console

video.srcObject = stream;

})

.catch(function(error) {

if (error.name === 'ConstraintNotSatisfiedError') {

errorMsg('The resolution ' + constraints.video.width.exact + 'x' +

constraints.video.width.exact + ' px is not supported by your device.');

} else if (error.name === 'PermissionDeniedError') {

errorMsg('Permissions have not been granted to use your camera and ' +

'microphone, you need to allow the page access to your devices in ' +

'order for the demo to work.');

}

errorMsg('getUserMedia error: ' + error.name, error);

});

function errorMsg(msg, error) {

errorElement.innerHTML += '<p>' + msg + '</p>';

if (typeof error !== 'undefined') {

console.error(error);

}

}

第9章 其他

budget、usb、storage、presentation、webkitTemporaryStorage、webkitPersistentStorage等在谷歌中存在,而火狐并未实现,暂未了解。

浏览器根对象navigator之对象属性概览的更多相关文章

  1. 浏览器根对象document之方法概述

    1.1 节点 筛选 getRootNode返回上下文的根节点. querySelector返回文档中匹配指定 CSS 选择器的第一个元素. querySelectorAll返回文档中匹配指定 CSS ...

  2. JavaScript浏览器检测之navigator 对象

    一.使用客户端检测的原因 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤. 虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能: 但在现实中 ...

  3. Navigator对象关于语言的属性

    [摘要]在做国际化WEB项目的时候,遇到了一个根据用户浏览器所使用的自然语言切换默认语言版本的问题.于是,整理了这篇文章. 首先,W3Cschool关于Navigator的各个属性值说的很明确了,这里 ...

  4. JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。

    Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ...

  5. IE 浏览器不支持 ES6 Array.from(new Set( )) SCRIPT438: 对象不支持“from”属性

    [转]解决老浏览器不支持ES6的方法 现象: Array.from(new Set( )) SCRIPT438: 对象不支持“from”属性或方法   解决方法: 安装babel 引入browser. ...

  6. 浏览器根对象window之performance

    W3C性能小组引入的新的API,目前IE9以上的浏览器都支持. 为了解决当前性能测试的困难,W3C推出了一套性能API标准,各种浏览器对这套标准的支持如今也逐渐成熟起来.这套API的目的是简化开发者对 ...

  7. 浏览器根对象window之Location

    1. Location Location 对象包含有关当前 URL 的信息.Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问. 1.1 Loc ...

  8. IE浏览器提示对象不支持“append”属性或方法

    如下代码在IE浏览器中无法执行,提示对象不支持“append”属性或方法 var tImg = document.createElement("img"); tImg.setAtt ...

  9. BOM对象,math对象document对象的属性和操作和 事件的基本操作

    Math对象 //该对象中的属性方法 和数学有关. abs(x) 返回数的绝对值. exp(x) 返回 e 的指数. floor(x) 对数进行下舍入. log(x) 返回数的自然对数(底为e). m ...

随机推荐

  1. ajax获取json数据及实现跨域请求

    最近想练习一下ajax获取json数据 , 首先上网找一些在线的可用来测试的接口. -----------------------------------------------------这里是接口 ...

  2. 题解 P3628 【[APIO2010]特别行动队 】

    题目大意 ​ 给你一个序列, 将这个序列分成若干段, 每一段的贡献为 \(ax ^ 2 + bx + c\)(x 为 这一段的权值之和) 具体思路 50pts ​ 考虑Dp, 设\(Dp_i\)为前i ...

  3. 使用git工具删除github上的文件或者文件夹

    解决 使用git工具删除github上的文件或者文件夹 当我们需要从github上删除一些我们不需要的文件或者文件夹时,如果通过github来操作的话,将会很麻烦,因为github只允许删除一个仓库, ...

  4. Opencv --- 图像像素遍历的各种方法

    #include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgu ...

  5. 用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程

    用汇编语言(ARM 32位)编写TCP Bind Shell的菜鸟教程 来源 https://www.4hou.com/info/news/9959.html Change 新闻 2018年1月19日 ...

  6. Observer观察者设计模式

    Observer设计模式主要包括以下两种对象: (1)被观察对象:Subject,它往往包含其他对象感兴趣的东西,上面例子中热水器中就是Subject(被监视对象); (2)观察对象:Observer ...

  7. Java_单例模式

    主要介绍单例模式的一种写法.注意事项.作用.测试,以Java语言为例,下面代码是目前见过最好的写法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  8. 如何虚拟机里安装Win8操作系统

    不多说,直接上干货! Windows Server 2003.2008.2012系统的安装 推荐网址:打开MSDN网站(http://msdn.itellyou.cn ) 关于给电脑换系统,很多人会花 ...

  9. 分析org.rpgpoet.Music.wizards.length

    例子如下: package bazola; public class Gabriel { static int n = org.rpgpoet.Music.wizards.length; } pack ...

  10. AndroidStudio生成自己的Compile依赖

    在AndroidStudio中经常使用compile的方式来导入第三方代码,如图所示: 想要拥有自己的依赖,可参考本篇的方法 在github上托管一个带有Android Libray的项目,我们要co ...