第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. leetcode-64-最小路径和

    题目描述: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [  [1,3,1], [1 ...

  2. XCode9的新变化

    XCode9已经随着ios11的发布发布了,那么在这个XCode9版本中有哪些变化呢? 1 折叠代码 焦点在方法的实现体的方法名上,按comman键,则整个函数会被框住.用来标志这个方法的起点和终点 ...

  3. Swift循环遍历集合方法

      第一种方式:for-in循环 OC延续了C语言的for循环,在Swift中被彻底改造,我们无法再使用传统形式的for循环了 遍历数组和字典: //遍历数组 let iosArray = [&quo ...

  4. LeetCode题解-147 对链表进行插入排序 Medium

    对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插 ...

  5. java调用存储过程、存储函数

    需要用到的接口 接口 CallableStatement JDK文档对改接口的说明: public interface CallableStatement extends PreparedStatem ...

  6. 在Vue的webpack中结合runder函数

    在Vue的webpack中结合runder函数 1.引入: <h1>下面是vue的内容:</h1> <div id="app"> <log ...

  7. Jsp页面用ajax传输json数组的方法

    详细参考jquery的API 这里主要展示实例,即写法 <%@ page language="java" contentType="text/html; chars ...

  8. 转载:Spring学习总结

    地址:http://www.cnblogs.com/best/tag/Spring/

  9. 前端h5遇到的问题及解决办法

    以后遇到的问题都记录在这里. 1.由于先有的pc端后需求手机端,所以没有用框架做适配,而是手动媒体查询进行手机端.pad.pc 三端适配,界面比较简单,所以这么做也不复杂,就是坑比较多. 2.移动和p ...

  10. docker 创建tomcat镜像

    Dockerfile ############################################ # version : wenbronk/jdkiu121/tomcat8 # desc ...