第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. centos7系统的进程管理

    使用top命令,实时查看后台的进程,会看到以下信息 官方的解释: us: user cpu time (or) % CPU time spent in user space sy: system cp ...

  2. JavaWeb 基础面试

    1. 启动项目时如何实现不在链接里输入项目名就能启动?  修改Tomcat配置文件 server.xml.找到自己的项目配置 : <Context docBase="oneProjec ...

  3. Hadoop2.0.0+CDH4.5.0集群配置

    Hadoop 2.0.0-cdh4.5.0安装:http://blog.csdn.net/u010967382/article/details/18402217 CDH版本下载:http://arch ...

  4. android图片压缩总结

    一.bitmap 图片格式介绍 android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式: bitmap内存大 ...

  5. CGI PL PERL脚本 提权

    windows 2003 下,安装ActivePerl-5.16.2.1602-MSWin32-x86-296513 IIS 添加CGI支持.并在对应网站配置下面,添加CGI后缀或PL后缀 与 对应的 ...

  6. gles2.0环境的在windows上的建立

    这里也有一个视频来讲解,大家可以看下,可以多提问题,意见,建议 http://edu.csdn.net/course/detail/606 #include <Windows.h> #in ...

  7. Catalina.createDigester方法详细理解

    这个方法主要设置(这个方法很重要,贵在理解,虽然还没学过设计模式..) 1.遇到<server>标签时创建StandardServer实例   设置StandardServer类内部的相关 ...

  8. tensorflow 滑动平均使用和恢复

    https://www.cnblogs.com/hrlnw/p/8067214.html

  9. tensorflow VocabularyProcessor

    from tensorflow.contrib import learn import numpy as np vocab_process = learn.preprocessing.Vocabula ...

  10. springcloud-05-ribbon中不使用eureka

    ribbon在有eureka的情况下, 可以不使用eureka, 挺简单, 直接上代码 application.xml server: port: spring: # 设置eureka中注册的名称, ...