aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
commita065e04d529da1d847b5062a12c46d916408bf32 (patch)
treefe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/zh-cn/web/api
parent218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff)
downloadtranslated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/zh-cn/web/api')
-rw-r--r--files/zh-cn/web/api/cameracontrol/getpreviewstream/index.html64
-rw-r--r--files/zh-cn/web/api/cameracontrol/index.html88
-rw-r--r--files/zh-cn/web/api/identitymanager/index.html43
-rw-r--r--files/zh-cn/web/api/identitymanager/watch/index.html59
-rw-r--r--files/zh-cn/web/api/indexeddb_api/using_indexeddb_in_chrome/index.html27
-rw-r--r--files/zh-cn/web/api/navigator/id/index.html45
-rw-r--r--files/zh-cn/web/api/navigator/mozsettings/index.html32
-rw-r--r--files/zh-cn/web/api/navigator/mozsms/index.html112
-rw-r--r--files/zh-cn/web/api/using_the_browser_api/index.html214
-rw-r--r--files/zh-cn/web/api/webvr_api/webvr_environment_setup/index.html110
10 files changed, 0 insertions, 794 deletions
diff --git a/files/zh-cn/web/api/cameracontrol/getpreviewstream/index.html b/files/zh-cn/web/api/cameracontrol/getpreviewstream/index.html
deleted file mode 100644
index be1756631d..0000000000
--- a/files/zh-cn/web/api/cameracontrol/getpreviewstream/index.html
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: CameraControl.getPreviewStream
-slug: Web/API/CameraControl/getPreviewStream
-translation_of: Archive/B2G_OS/API/CameraControl/getPreviewStream
----
-<p>{{APIRef("Camera API")}}{{ non-standard_header() }}</p>
-
-<h2 id="概述">概述</h2>
-
-<p>该方法用来根据指定的配置,从摄像头获取到一个{{domxref("MediaStream")}}数据流,你可以从该数据流中捕获到静态的照片.</p>
-
-<div class="note">
-<p><strong>注:使用该方法获取到的数据流仅能用来捕获静态的照片</strong>.如果你想录制视频,那么必须使用{{domxref("CameraControl.getPreviewStreamVideoMode()")}}方法来代替.</p>
-</div>
-
-<h2 id="语法">语法</h2>
-
-<pre>CameraControl.getPreviewStream(options, onsuccess[, onerror]);</pre>
-
-<h3 id="参数">参数</h3>
-
-<dl>
- <dt><code>options</code></dt>
- <dd>一个包含有两个属性<code>width</code>和<code>height的对象</code>.该对象可以通过{{domxref("CameraCapabilities")}}<code>.previewSizes属性获取到.</code></dd>
- <dt><code>onsuccess</code></dt>
- <dd>一个回调函数,会被传入一个参数,这个参数是一个{{domxref("MediaStream")}}数据流对象,可以使用该数据流对象捕获静态的图像.</dd>
- <dt><code>onerror</code> {{optional_inline()}}</dt>
- <dd>一个回调函数,会被传入一个参数,这个参数是一个表示错误原因的字符串.如果在尝试获取<code>MediaStream</code>数据流对象时发生了错误,则会调用该函数.</dd>
-</dl>
-
-<h2 id="示例">示例</h2>
-
-<p>这个例子演示了如何通过使用{{domxref("MediaStream")}}数据流对象来从摄像头捕获并播放静态的图片.</p>
-
-<pre class="brush: js">var display = document.getElementsByTagName('video')[0];
-var options = {
- camera: navigator.mozCameras.getListOfCameras()[0]
-};
-
-function onStreamReady( stream ) {
- display.mozSrcObject = stream;
- display.play();
-}
-
-function onAccessCamera( camera ) {
- var size = camera.capabilities.previewSizes[0];
-
- camera.getPreviewStream(size, onStreamReady);
-};
-
-navigator.mozCameras.getCamera(options, onAccessCamera)
-</pre>
-
-<h2 id="Specification" name="Specification">规范</h2>
-
-<p>不属于任何规范.当<a class="external" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html" rel="external" title="http://dev.w3.org/2011/webrtc/editor/getusermedia.html">WebRTC Capture and Stream API</a>实现时,该方法应该会被删除.</p>
-
-<h2 id="相关链接">相关链接</h2>
-
-<ul>
- <li>{{domxref("CameraControl")}}</li>
- <li>{{domxref("MediaStream")}}</li>
- <li>The <code>mozSrcObject</code> property on {{domxref("HTMLMediaElement")}}</li>
-</ul>
diff --git a/files/zh-cn/web/api/cameracontrol/index.html b/files/zh-cn/web/api/cameracontrol/index.html
deleted file mode 100644
index 3be97dac90..0000000000
--- a/files/zh-cn/web/api/cameracontrol/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: CameraControl
-slug: Web/API/CameraControl
-translation_of: Archive/B2G_OS/API/CameraControl
----
-<p>{{APIRef("Camera API")}}</p>
-
-<p>{{ non-standard_header() }}</p>
-
-<p><span class="seoSummary">When you use the {{domxref("CameraManager.getCamera()")}} method to get a reference to a camera, you specify a callback function to be invoked on success. That function receives as a parameter a <code>CameraControl</code> object. You can use its methods and properties to manage and make use of the camera.</span></p>
-
-<h2 id="Properties">Properties</h2>
-
-<dl>
- <dt>{{domxref("CameraControl.capabilities")}} {{readonlyinline}}</dt>
- <dd>A {{domxref("CameraCapabilities")}} object indicating all the capabilities for the given camera.</dd>
- <dt>{{domxref("CameraControl.effect")}}</dt>
- <dd>A string defining the effect to be used by the camera (<code>none</code> by default). Its value must be one of the values available in {{domxref("CameraCapabilities.effects")}}.</dd>
- <dt>{{domxref("CameraControl.exposureCompensation")}} {{readonlyinline}}</dt>
- <dd>A value used to compensate the camera exposure. This attribute is read-only; to change the exposure, you need to call the {{domxref("CameraControl.setExposureCompensation()")}} method.</dd>
- <dt>{{domxref("CameraControl.flashMode")}}</dt>
- <dd>A string that defines how the flash, if any, is to be used; this is <code>auto</code> by default if the device has a flash, <code>none</code> otherwise. When set, its value must be chosen from the list of options specified by  {{domxref("CameraCapabilities.flashModes")}}<code>.</code></dd>
- <dt>{{domxref("CameraControl.focalLength")}} {{readonlyinline}}</dt>
- <dd>A number that express the camera's focal length in millimeters.</dd>
- <dt>{{domxref("CameraControl.focusAreas")}}</dt>
- <dd>An <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/JavaScript/Reference/Global_Objects/Array"><code>Array</code></a> of one or more objects that define where the camera will perform auto-focusing.</dd>
- <dt>{{domxref("CameraControl.focusDistanceFar")}} {{readonlyinline}}</dt>
- <dd>This value is a distance in meter used with {{domxref("CameraControl.focusDistanceNear")}} to defined the image's depth of field. The value for this property may be <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Infinity" title="/en-US/docs/JavaScript/Reference/Global_Objects/Infinity">Infinity</a></code>.</dd>
- <dt>{{domxref("CameraControl.focusDistanceNear")}} {{readonlyinline}}</dt>
- <dd>This value is a distance in meter used with {{domxref("CameraControl.focusDistanceFar")}} to defined the image's depth of field.</dd>
- <dt>{{domxref("CameraControl.focusDistanceOptimum")}} {{readonlyinline}}</dt>
- <dd>This value is a distance in meter where the subject will appear sharpest.</dd>
- <dt>{{domxref("CameraControl.focusMode")}}</dt>
- <dd>A string that defines which kind of focus mode the camera should use (<code>auto</code> or <code>fixed</code> by default). Its value must be chosen from {{domxref("CameraCapabilities.focusModes")}}.</dd>
- <dt>{{domxref("CameraControl.meteringAreas")}}</dt>
- <dd>An <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/JavaScript/Reference/Global_Objects/Array"><code>Array</code></a> of one or more objects that define where the camera will perform auto-focusing.</dd>
- <dt>{{domxref("CameraControl.onShutter")}}</dt>
- <dd>A handler for the camera's "shutter" event, to trigger a shutter sound and/or a visual shutter indicator.</dd>
- <dt>{{domxref("CameraControl.onClosed")}}</dt>
- <dd>A handler called when a new <code>CameraControl</code> object in the same app takes over the camera.</dd>
- <dt>{{domxref("CameraControl.onRecorderStateChange")}}</dt>
- <dd>A function to call when the recorder changes state, either because the recording process encountered an error, or because one of the recording limits (see {{domxref("CameraControl.startRecording()")}}) was reached.</dd>
- <dt>{{domxref("CameraControl.sceneMode")}}</dt>
- <dd>A string that defines which scene mode the camera is to use (<code>auto</code> by default). Its value must be chosen from {{domxref("CameraCapabilities.sceneModes")}}.</dd>
- <dt>{{domxref("CameraControl.whiteBalanceMode")}}</dt>
- <dd>A string that defines which white balance mode the camera is to use (<code>auto</code> by default). Its value must be chosen from {{domxref("CameraCapabilities.whiteBalanceModes")}}.</dd>
- <dt>{{domxref("CameraControl.zoom")}}</dt>
- <dd>A number that defines which kind of zoom factor mode the camera is to use (1 by default). Its value must be chosen from {{domxref("CameraCapabilities.zoomRatios")}}.</dd>
-</dl>
-
-<h2 id="Methods">Methods</h2>
-
-<dl>
- <dt>{{ domxref("CameraControl.autoFocus()") }}</dt>
- <dd>Tells the camera to attempt to focus the image.</dd>
- <dt>{{ domxref("CameraControl.getPreviewStream()") }}</dt>
- <dd>Gets a video stream from the camera; you can use this in an arbitrary context.</dd>
- <dt>{{ domxref("CameraControl.getPreviewStreamVideoMode()") }}</dt>
- <dd>Gets a video stream from the camera based on a specific video mode.</dd>
- <dt>{{ domxref("CameraControl.release()") }}</dt>
- <dd>Releases the camera so that other applications can use it.</dd>
- <dt>{{ domxref("CameraControl.resumePreview()") }}</dt>
- <dd>Resumes the preview video stream after it's been paused by a call to {{domxref("CameraControl.takePicture()")}}.</dd>
- <dt>{{ domxref("CameraControl.setExposureCompensation()") }}</dt>
- <dd>Lets you specify the exposure compensation factor.</dd>
- <dt>{{ domxref("CameraControl.startRecording()") }}</dt>
- <dd>Lets you start recording a video stream.</dd>
- <dt>{{ domxref("CameraControl.stopRecording()") }}</dt>
- <dd>Lets you stop recording a video stream.</dd>
- <dt>{{ domxref("CameraControl.takePicture()") }}</dt>
- <dd>Lets you capture a single image, receiving it as a {{domxref("Blob")}}.</dd>
-</dl>
-
-<h2 id="Specification" name="Specification">Specification</h2>
-
-<p>{{page("/en-US/docs/Web/API/Navigator.MozCameras","Specification")}}</p>
-
-<h2 id="Permissions">Permissions</h2>
-
-<p>{{page("/en-US/docs/Web/API/Navigator.MozCameras","Permissions")}}</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li>{{ domxref("CameraManager") }}</li>
- <li>{{ domxref("CameraCapabilities") }}</li>
- <li>{{ domxref("navigator.mozCamera") }}</li>
-</ul>
diff --git a/files/zh-cn/web/api/identitymanager/index.html b/files/zh-cn/web/api/identitymanager/index.html
deleted file mode 100644
index 35dab1a6c2..0000000000
--- a/files/zh-cn/web/api/identitymanager/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: IdentityManager
-slug: Web/API/IdentityManager
-translation_of: Archive/IdentityManager
----
-<p>{{APIRef("Persona")}}{{non-standard_header}}</p>
-
-<p>The <strong><code>IdentityManager</code></strong> of the  <a href="/en-US/docs/Persona" title="BrowserID">BrowserID protocol</a> exposes the BrowserID API, via {{domxref("navigator.id")}}. This API has gone through several significant revisions. Each generation is listed separately below.</p>
-
-<h2 id="ObserverMethods" name="ObserverMethods">The "Observer" API (Current)</h2>
-
-<p>The Observer API introduces much-requested features, such as an improved post-verification experience for first-time users, automatic persistent logins, and easier integration with native applications.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.watch()")}}</dt>
- <dd>Registers callbacks to be invoked when a user logs into or out of a website.</dd>
- <dt>{{ domxref("IdentityManager.request()")}}</dt>
- <dd>Requests a signed identity assertion from the user.</dd>
- <dt>{{ domxref("IdentityManager.logout()")}}</dt>
- <dd>Logs the user out of a website and prevents the <code>onlogin</code> action from automatically firing on their next visit.</dd>
-</dl>
-
-<div class="note">
-<p>Users with third-party cookies disabled may experience problems logging in using the Observer API as detailed in <a href="https://github.com/mozilla/browserid/issues/2999" title="https://github.com/mozilla/browserid/issues/2999">issue 2999</a>.</p>
-</div>
-
-<h2 id="CallbackMethods" name="CallbackMethods">The "Callback" API (Current)</h2>
-
-<p>The Callback API was introduced in November 2011. It improved upon the initial API by allowing options to be passed to <code>navigator.id.get()</code> and offering experimental support for BrowserID-managed persistent sessions.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.get()")}}</dt>
- <dd>Gets the user's BrowserID in a signed assertion.</dd>
-</dl>
-
-<h2 id="VerifiedEmailMethods" name="VerifiedEmailMethods">The "VerifiedEmail" API (Deprecated)</h2>
-
-<p>The VerifiedEmail API was BrowserID's first API. It was deprecated at the end of 2011.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.getVerifiedEmail()")}} {{ deprecated_inline() }}</dt>
- <dd>Gets the user's BrowserID in a signed assertion. This method is deprecated; {{ domxref("navigator.id.get()")}} is backwards compatible and can be used instead.</dd>
-</dl>
diff --git a/files/zh-cn/web/api/identitymanager/watch/index.html b/files/zh-cn/web/api/identitymanager/watch/index.html
deleted file mode 100644
index 1660ccdacf..0000000000
--- a/files/zh-cn/web/api/identitymanager/watch/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: IdentityManager.watch()
-slug: Web/API/IdentityManager/watch
-translation_of: Archive/IdentityManager/watch
----
-<p>{{ ApiRef("Persona") }}</p>
-
-<div class="note"><strong>注意:</strong> 不是所有的浏览器都支持这项功能. 使用 Persona 的网站必须在他们的页面中包含 <a href="https://login.persona.org/include.js" title="https://login.persona.org/include.js">polyfill library</a> .</div>
-
-<h3 id="Summary" name="Summary">概要</h3>
-
-<p>This function registers callbacks that respond to a <a href="/en-US/docs/BrowserID" title="BrowserID">Persona</a> user logging in or out.</p>
-
-<h3 id="Syntax" name="Syntax">语法</h3>
-
-<pre class="brush:js;">navigator.id.watch({
- loggedInUser: 'bob@example.org',
- onlogin: function(assertion) {
- // A user has logged in! Here you need to:
- // 1. Send the assertion to your backend for verification and to create a session.
- // 2. Update your UI.
- },
- onlogout: function() {
- // A user has logged out! Here you need to:
- // Tear down the user's session by redirecting the user or making a call to your backend.
- }
-});
-</pre>
-
-<h4 id="参数">参数</h4>
-
-<dl>
- <dt><code>loggedInUser </code>{{ optional_inline() }}</dt>
- <dd><strong>NOTE: </strong>This parameter was renamed from <code>loggedInEmail</code> in early September. Both names will continue to work for the time being, but code <strong>should</strong> be changed to use <code>loggedInUser</code> instead.</dd>
- <dd>The email address of the currently logged in user. This should be a string containing the user's email address if the website believes that a user is currently logged in, or <code>null</code> otherwise. If the website is unsure, this should be set to <code>undefined</code> or omitted.</dd>
- <dd>Persona compares its knowledge of the local user to the value of <code>loggedInUser</code> to determine which callback—<code>onlogin</code>, <code>onlogout</code>, or none at all—to automatically invoke when your page loads. If <code>loggedInUser</code> is <code>undefined</code> or omitted, Persona <em>will</em> invoke either <code>onlogin</code> or <code>onlogout</code>, depending on whether or not a local user should be logged in to your site. These callbacks are not invoked automatically if both BrowserID and <code>loggedInUser</code> agree on the local user's state.</dd>
- <dd>Note that Persona may automatically call <em>either</em> <code>onlogin</code> or <code>onlogout</code> when your page loads, but not <em>both</em>. If <code>loggedInUser</code> is set to <code><span class="link-mailto">foo@example.com</span></code>, but Persona believes <code><span class="link-mailto">bar@example.com</span></code> should be logged in, only <code>onlogin</code> will be called. It will have an assertion for <code><span class="link-mailto">bar@example.com</span></code> as its first parameter.</dd>
- <dt><code>onlogin</code></dt>
- <dd>A function which will be invoked and passed a single argument, an assertion, when the user logs in. This function should send the assertion to the site's backend for verification. If verification succeeds, the backend should establish a session for the user and the function should update the UI as appropriate.</dd>
- <dt><code>onlogout</code></dt>
- <dd>A function that will be invoked, without any arguments, when the user logs out. This should tear down the user's session by making a call to the site's backend, or by redirecting the user.</dd>
-</dl>
-
-<h3 id="Example" name="Example">示例</h3>
-
-<p>需要示例.</p>
-
-<h3 id="Specification" name="Specification">技术规范</h3>
-
-<p>没有包含在任何技术规范中.</p>
-
-<h3 id="查看其它内容">查看其它内容</h3>
-
-<ul>
- <li><a href="/en/BrowserID" title="BrowserID">BrowserID</a></li>
- <li>{{domxref("navigator.id")}}</li>
- <li>{{domxref("navigator.id.logout()")}}</li>
- <li>{{domxref("navigator.id.request()")}}</li>
-</ul>
diff --git a/files/zh-cn/web/api/indexeddb_api/using_indexeddb_in_chrome/index.html b/files/zh-cn/web/api/indexeddb_api/using_indexeddb_in_chrome/index.html
deleted file mode 100644
index d9d9aa2cbf..0000000000
--- a/files/zh-cn/web/api/indexeddb_api/using_indexeddb_in_chrome/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: Using IndexedDB in chrome
-slug: Web/API/IndexedDB_API/Using_IndexedDB_in_chrome
-translation_of: Mozilla/Tech/XPCOM/Using_IndexedDB_in_chrome
----
-<p>indexedDB API 通常被用来在用户的浏览器端存储来自JavaScript的数据。(点击 <a href="/en-US/docs/IndexedDB/Using_IndexedDB" title="/en-US/docs/IndexedDB/Using_IndexedDB">Using IndexedDB</a> 复习)。然而,使用system-privileged JavaScript的 <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.importGlobalProperties">Components.utils.importGlobalProperties()</a> </code>函数也能获取这些API:</p>
-
-<pre class="brush: js">Components.utils.importGlobalProperties(["indexedDB"]);
-
-// From here on, it's like using IndexedDB from content
-var req = indexedDB.open("my-database");
-// ...</pre>
-
-<p>如果你要创建一个 sandbox ,并且打算<code>在sandbox中使用indexedDB,那么在</code> <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.Sandbox">Sandbox</a></code> 的构造函数中使用 <code>wantGlobalProperties配置项:</code></p>
-
-<pre class="brush: js">var options = {
- "wantGlobalProperties": ["indexedDB"]
-}
-var principal = Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal);
-var sandbox = Components.utils.Sandbox(principal, options);
-
-// The sandbox will have access to indexedDB
-var sandboxScript = 'var req = indexedDB.open("my-database");';
-Components.utils.evalInSandbox(sandboxScript, sandbox);
-</pre>
-
-<p>在Firefox 33之前,你可能要使用<code>nsIIndexedDatabaseManager的initWindowless</code>方法,从chrome的代码中方法获取indexedDB。这种方法在Firefox 33时,已经被移除。</p>
diff --git a/files/zh-cn/web/api/navigator/id/index.html b/files/zh-cn/web/api/navigator/id/index.html
deleted file mode 100644
index c2d8597274..0000000000
--- a/files/zh-cn/web/api/navigator/id/index.html
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Navigator.id
-slug: Web/API/Navigator/id
-translation_of: Archive/Navigator-id
----
-<div>{{ ApiRef("Persona") }}</div>
-
-<p>{{ non-standard_header() }}</p>
-
-<div class="note"><strong>注意:</strong> 这个功能的支持还没有构建到任何浏览器中,使用 Persona 的网站必须包含托管在 <a class="link-https" href="https://login.persona.org/include.js" title="https://login.persona.org/include.js">https://login.persona.org/include.js</a> 上的填充库。</div>
-
-<h2 id="Summary" name="Summary">概述</h2>
-
-<p><a href="https://developer.mozilla.org/en-US/docs/Persona" title="BrowserID">BrowserID 协议</a>定义了 {{ domxref ("window.navigator")}} 对象上的一个新的 <code>id</code> 属性,通过这个属性暴露 BrowserID API。这个 API 已经经历了几个重要修订。下面独立列出了每代 API。</p>
-
-<h2 id="ObserverMethods" name="ObserverMethods">观察者 API(当前)</h2>
-
-<p>观察者 API 引入了非常请求化的特性,诸如一个为新手用户改进的提交-验证体验、自动持久化登入和更简单的本地应用集成。</p>
-
-<dl>
- <dt>{{ domxref("navigator.id.watch()")}}</dt>
- <dd>登记在用户登入或登出网站时调用的回调。</dd>
- <dt>{{ domxref("navigator.id.request()")}}</dt>
- <dd>从用户请求一个签名的身份断言。</dd>
- <dt>{{ domxref("navigator.id.logout()")}}</dt>
- <dd>把用户登出网站并阻止 <code>onlogin</code> 行为在他们下次访问时触发。</dd>
-</dl>
-
-<h2 id="CallbackMethods" name="CallbackMethods">回调 API(当前)</h2>
-
-<p>回调 API 在 2011 年 11 月被引入。它通过允许传递给 <code>navigator.id.get()</code>和提供 BrowserID 管理的持久会话的实验性支持改进了初始的 API。</p>
-
-<dl>
- <dt>{{ domxref("navigator.id.get()")}}</dt>
- <dd>Gets the user's BrowserID in a signed assertion.</dd>
-</dl>
-
-<h2 id="VerifiedEmailMethods" name="VerifiedEmailMethods">VerifiedEmail API(弃用)</h2>
-
-<p>VerifiedEmail API 是 BrowserID 的第一个 API。它在 2011 年末被弃用。</p>
-
-<dl>
- <dt>{{ domxref("navigator.id.getVerifiedEmail()")}} {{ deprecated_inline() }}</dt>
- <dd>在一个签名的断言里获取用户的 BrowserID。这个方法已经弃用了;{{ domxref("navigator.id.get()")}} 是向后兼容的替代方法。</dd>
-</dl>
diff --git a/files/zh-cn/web/api/navigator/mozsettings/index.html b/files/zh-cn/web/api/navigator/mozsettings/index.html
deleted file mode 100644
index bd96466118..0000000000
--- a/files/zh-cn/web/api/navigator/mozsettings/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Navigator.mozSettings
-slug: Web/API/Navigator/mozSettings
-translation_of: Archive/B2G_OS/API/Navigator/mozSettings
----
-<p>{{APIRef("Firefox OS")}}{{ non-standard_header() }}</p>
-
-<p>{{ B2GOnlyHeader2('certified') }}</p>
-
-<h2 id="Summary" name="Summary">概述</h2>
-
-<p>返回一个{{ domxref("SettingsManager") }}对象,你可以使用返回的对象来修改设备的各项设置.</p>
-
-<h2 id="Syntax" name="Syntax">语法</h2>
-
-<pre class="eval">var settings = window.navigator.mozSettings;
-</pre>
-
-<h2 id="Value" name="Value">值</h2>
-
-<p><code>navigator.mozSettings</code>是一个{{domxref("SettingsManager")}}对象,你可以使用该对象来修改设备的各项设置.</p>
-
-<h2 id="Specification" name="Specification">规范</h2>
-
-<p>目前还不属于任何的规范,不过这个API将作为<a class="external" href="http://www.w3.org/2012/sysapps/" rel="external" title="http://www.w3.org/2012/sysapps/">System Applications Working Group</a>规范的一部分在W3C上讨论.</p>
-
-<h2 id="相关链接">相关链接</h2>
-
-<ul>
- <li>{{domxref("SettingsManager")}}</li>
- <li>{{domxref("SettingsLock")}}</li>
-</ul>
diff --git a/files/zh-cn/web/api/navigator/mozsms/index.html b/files/zh-cn/web/api/navigator/mozsms/index.html
deleted file mode 100644
index c6c9aff864..0000000000
--- a/files/zh-cn/web/api/navigator/mozsms/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: Navigator.mozSms
-slug: Web/API/Navigator/mozSms
-translation_of: Archive/B2G_OS/API/Navigator/mozSms
----
-<p>{{APIRef("Firefox OS")}}</p>
-
-<p>{{ non-standard_header() }}</p>
-
-<p>{{ obsolete_header(25) }}</p>
-
-<p>{{ B2GOnlyHeader2('certified') }}</p>
-
-<p>返回 {{ domxref("SmsManager") }} 对象,你可以通过该对象进行短消息的收发操作。</p>
-
-<div class="note">
-<p>注意: <strong>废弃! </strong>该对象已被废弃,请参考使用: {{ domxref("window.navigator.mozMobileMessage") }}。</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">语法</h2>
-
-<pre class="eval">var sms = window.navigator.mozSms;
-</pre>
-
-<h2 id="参数说明">参数说明</h2>
-
-<p>这是一个非标准接口,不过该接口有在 W3C 部分提及: <a href="http://www.w3.org/2012/sysapps/" title="http://www.w3.org/2012/sysapps/">System Application Working Group</a>.</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Specification</th>
- <th scope="col">Status</th>
- <th scope="col">Comment</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('Messaging')}}</td>
- <td>{{Spec2('Messaging')}}</td>
- <td>Editor Draft (WIP).</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="浏览器兼容">浏览器兼容</h2>
-
-<p>For obvious reasons, support is primarily expected on mobile browsers.</p>
-
-<p>{{ CompatibilityTable() }}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatGeckoMobile("12.0") }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Preferences_availability">Preferences &amp; availability</h2>
-
-<ul>
- <li>WebSMS is disabled by default and can be enabled setting the preference <code>dom.sms.enabled</code> to true.</li>
- <li>A comma-separated whitelist of allowed hostnames that are allowed to use the WebSMS API must be specified using the <code>dom.sms.whitelist</code> preference. This string is empty by default.</li>
- <li>WebSMS is only available to certified apps on Firefox OS (B2G).</li>
-</ul>
-
-<h2 id="参阅">参阅</h2>
-
-<ul>
- <li><a href="/en-US/docs/API/WebSMS" title="/en-US/docs/API/WebSMS">WebSMS API</a></li>
- <li>{{ domxref("SmsManager") }}</li>
- <li>{{ domxref("window.navigator.mozTelephony") }} for controlling telephone calls.</li>
-</ul>
diff --git a/files/zh-cn/web/api/using_the_browser_api/index.html b/files/zh-cn/web/api/using_the_browser_api/index.html
deleted file mode 100644
index a829b11d58..0000000000
--- a/files/zh-cn/web/api/using_the_browser_api/index.html
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: Using the browser API
-slug: Web/API/Using_the_Browser_API
-tags:
- - API
- - B2G
- - Firefox OS
- - WebAPI
- - 指南
- - 浏览器
- - 非标准
-translation_of: Mozilla/Gecko/Chrome/API/Browser_API/Using
----
-<p>{{ non-standard_header() }}</p>
-
-<p>{{ B2GOnlyHeader2('privileged') }}</p>
-
-<h2 id="概述">概述</h2>
-
-<p>HTML Browser API 是对 HTML {{HTMLElement("iframe")}} 元素的扩展,允许 web app 用来实现浏览器或浏览器类似的应用。主要涉及到两个方面:</p>
-
-<ul>
- <li>使 <code>iframe</code> 看起来像嵌入内容的顶层浏览器窗口。这就意味着 <span id="summary_alias_container"><span id="short_desc_nonedit_display"><a href="/en-US/docs/DOM/window.top" title="/en-US/docs/DOM/window.top"><code>window.top</code></a>, <a href="/en-US/docs/DOM/window.parent" title="/en-US/docs/DOM/window.parent"><code>window.parent</code></a>, <a href="/en-US/docs/DOM/window.frameElement" title="/en-US/docs/DOM/window.frameElement"><code>window.frameElement</code></a>, 等不应该反映 frame 的继承关系。</span></span>Optionally, the notion that the embedded is an Open Web App can be expressed as well.</li>
- <li>用来操作和监听嵌入内容状态的变化的 API。</li>
-</ul>
-
-<p>除此之外,也可以表示成嵌入的内容就是一个 <a href="/en-US/docs/Apps" title="/en-US/docs/Apps">Open Web App</a>。在那种情况下,页面内容就会在适当的 app 上下文(如权限)中被装载。</p>
-
-<h2 id="用法">用法</h2>
-
-<p>{{HTMLElement("iframe")}} 可以通过设置 {{htmlattrxref("mozbrowser","iframe")}} 属性而转化为浏览器框架</p>
-
-<pre class="brush: html">&lt;iframe src="http://hostname.tld" mozbrowser&gt;</pre>
-
-<p>要想嵌入一个 Open Web App,  必须要提供 {{htmlattrxref("mozapp","iframe")}} 以及 app manifest 路径。</p>
-
-<pre>&lt;iframe src="http://hostname.tld" mozapp='http://path/to/manifest.webapp' mozbrowser&gt;</pre>
-
-<p>最后, {{HTMLElement("iframe")}} 的内容可以在它单独的子进程中装载,通过使用{{htmlattrxref("remote","iframe")}}  属性可以单独嵌入到此页面的框架中。</p>
-
-<pre>&lt;iframe src="http://hostname.tld" mozbrowser remote&gt;</pre>
-
-<div class="warning">
-<p><strong>警告:</strong> That last attribute is necessary for security reasons if you plan to load content from an untrusted/unknown origin. If you don't use it, you take the risk of your application being compromised by a malicious web site.</p>
-</div>
-
-<h2 id="权限">权限</h2>
-
-<p>想要嵌入到 browser frame 中的任何应用必须要在其中的 <a href="/en-US/docs/Web/Apps/Manifest" title="/en-US/docs/Web/Apps/Manifest">app manifest</a> 拥有 <code>browser </code>权限。</p>
-
-<pre class="brush: json">{
- "permissions": {
- "browser": {}
- }
-}</pre>
-
-<p>此外,要嵌入一个  Open Web App, app 必须具有 <code>embed-apps</code> 权限。</p>
-
-<pre class="brush: json">{
- "permissions": {
- "browser": {},
- "embed-apps": {}
- }
-}</pre>
-
-<h2 id="额外方法">额外方法</h2>
-
-<p>Firefox OS 扩展了 {{domxref("HTMLIFrameElement")}} DOM 接口以支持 browser {{HTMLElement("iframe")}} 所产生的需求。这些新的方法赋予  {{HTMLElement("iframe")}} 了一些强大的功能:</p>
-
-<h3 id="Navigation_方法">Navigation 方法</h3>
-
-<p>这些方法能够使 {{HTMLElement("iframe")}} 根据历史记录进行导航。此处也有必要来实现 back, forward, stop, and reload 按钮。</p>
-
-<ul>
- <li>{{domxref("HTMLIFrameElement.reload","reload()")}}: 重载 {{HTMLElement("iframe")}}.</li>
- <li>{{domxref("HTMLIFrameElement.stop","stop()")}}: 停止装载{{HTMLElement("iframe")}}'s content.</li>
- <li>{{domxref("HTMLIFrameElement.getCanGoBack","getCanGoBack()")}}: 判断是否可以回到前一页面.</li>
- <li>{{domxref("HTMLIFrameElement.goBack","goBack()")}}:回到{{HTMLElement("iframe")}}历史记录的前一个位置</li>
- <li>{{domxref("HTMLIFrameElement.getCanGoForward","getCanGoForward()")}}: 得知是否可以到达历史记录的后一个页面。</li>
- <li>{{domxref("HTMLIFrameElement.goForward","goForward()")}}: Changes the location of the {{HTMLElement("iframe")}} for the next location in its browsing history.</li>
-</ul>
-
-<h3 id="性能方法">性能方法</h3>
-
-<p>Those methods are used to manage the resources used by a browser {{HTMLElement("iframe")}}. This is especially useful for implementing tabbed browser application.</p>
-
-<ul>
- <li>{{domxref("HTMLIFrameElement.setVisible","setVisible()")}}: Changes the visibility state of a browser {{HTMLElement("iframe")}}. This can influence resources allocation and some function usage such as {{domxref("window.requestAnimationFrame","requestAnimationFrame")}}.</li>
- <li>{{domxref("HTMLIFrameElement.getVisible","getVisible()")}}: Allows knowing the current visibility state of the browser {{HTMLElement("iframe")}}.</li>
- <li>{{domxref("HTMLIFrameElement.purgeHistory","purgeHistory()")}}: Allows clearing all the resources (cookies, localStorage, cache, etc.) associated with the browser {{HTMLElement("iframe")}}.</li>
-</ul>
-
-<h3 id="Event_方法">Event 方法</h3>
-
-<p>In order to manage the browser {{HTMLElement("iframe")}}'s content, many new events were added (see below). The following methods are used to deal with those events:</p>
-
-<ul>
- <li>The {{HTMLElement("iframe")}} gains support for the methods of the {{domxref("EventTarget")}} interface: {{domxref("EventTarget.addEventListener","addEventListener()")}}, {{domxref("EventTarget.removeEventListener","removeEventListener()")}}, and {{domxref("EventTarget.dispatchEvent","dispatchEvent()")}}.</li>
- <li>{{domxref("HTMLIFrameElement.sendMouseEvent","sendMouseEvent()")}}: Allows sending a {{domxref("MouseEvent")}} to the {{HTMLElement("iframe")}}'s content.</li>
- <li>{{domxref("HTMLIFrameElement.sendTouchEvent","sendTouchEvent()")}}: Allows sending a {{domxref("TouchEvent")}} to the {{HTMLElement("iframe")}}'s content. Note that this method is available for touch enabled devices only.</li>
- <li>{{domxref("HTMLIFrameElement.addNextPaintListener","addNextPaintListener()")}}: Allows defining a handler to listen for the next {{event("MozAfterPaint")}} event in the browser {{HTMLElement("iframe")}}.</li>
- <li>{{domxref("HTMLIFrameElement.removeNextPaintListener","removeNextPaintListener()")}}: Allows removing a handler previously set with {{domxref("HTMLIFrameElement.addNextPaintListener","addNextPaintListener()")}}.</li>
-</ul>
-
-<h3 id="其他方法">其他方法</h3>
-
-<p>Those methods are utilities, useful for apps that host a browser {{HTMLElement("iframe")}}.</p>
-
-<ul>
- <li>{{domxref("HTMLIFrameElement.getScreenshot","getScreenshot()")}}: Allows taking a screenshot of the browser {{HTMLElement("iframe")}}'s content. This is particularly useful to get thumbnails of tabs in a tabbed browser app.</li>
-</ul>
-
-<h2 id="Events">Events</h2>
-
-<p>In order to allow an application to manage the browser {{HTMLElement("iframe")}}, the application can listen for new events about what's happening within the browser {{HTMLElement("iframe")}}. The following new events can be listened for:</p>
-
-<ul>
- <li>{{event("mozbrowserasyncscroll")}}: Sent when the scroll position within a browser {{HTMLElement("iframe")}} changes.</li>
- <li>{{event("mozbrowserclose")}}: Sent when {{domxref("window.close()")}} is called within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowsercontextmenu")}}: Sent when a browser {{HTMLElement("iframe")}} tries to open a context menu. This allows  handling {{HTMLElement("menuitem")}} element available within the browser {{HTMLElement("iframe")}}'s content.</li>
- <li>{{event("mozbrowsererror")}}: Sent when an error occurred while trying to load content within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowsericonchange")}}: Sent when the favicon of a browser {{HTMLElement("iframe")}} changes.</li>
- <li>{{event("mozbrowserloadend")}}: Sent when the browser {{HTMLElement("iframe")}} has finished loading all its assets.</li>
- <li>{{event("mozbrowserloadstart")}}: Sent when the browser {{HTMLElement("iframe")}} starts to load a new page.</li>
- <li>{{event("mozbrowserlocationchange")}}: Sent when a browser {{HTMLElement("iframe")}}'s location changes.</li>
- <li>{{event("mozbrowseropenwindow")}}: Sent when {{domxref("window.open()")}} is called within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowsersecuritychange")}}: Sent when the SSL state changes within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowsershowmodalprompt")}}: Sent when {{domxref("window.alert","alert()")}}, {{domxref("window.confirm","confirm()")}}, or {{domxref("window.prompt","prompt()")}} is called within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowsertitlechange")}}: Sent when the document.title changes within a browser {{HTMLElement("iframe")}}.</li>
- <li>{{event("mozbrowserusernameandpasswordrequired")}}: Sent when an HTTP authentification is requested.</li>
- <li>{{event("mozbrowseropensearch")}}: Sent when a link to a search engine is found.</li>
-</ul>
-
-<h2 id="示例">示例</h2>
-
-<p>In this example we'll see how to implement a very basic browser app.</p>
-
-<h3 id="HTML">HTML</h3>
-
-<p>In the HTML we just add a URL bar, a "Go" and "Stop" button, and a browser {{HTMLElement("iframe")}}.</p>
-
-<pre class="brush: html">&lt;header&gt;
- &lt;input id="url"&gt;
- &lt;button id="go"&gt;Go&lt;/button&gt;
- &lt;button id="stop"&gt;Stop&lt;/button&gt;
-&lt;/header&gt;
-
-&lt;iframe src="about:blank" mozbrowser remote&gt;&lt;/iframe&gt;
-</pre>
-
-<h3 id="CSS">CSS</h3>
-
-<p>We switch between the go and stop button with a little css trick.</p>
-
-<pre class="brush: css">button:disabled {
- display: none;
-}</pre>
-
-<h3 id="JavaScript">JavaScript</h3>
-
-<p>Now we can add the required functionalities:</p>
-
-<pre class="brush: js">document.addEventListener("DOMContentLoaded", function () {
-  var url  = document.getElementById("url");
-  var go   = document.getElementById("go");
-  var stop = document.getElementById("stop");
-
-  var browser = document.getElementsByTagName("iframe")[0];
-
- // This function is used to switch the Go and Stop button
- // If the browser is loading content, "Go" is disabled and "Stop" is enabled
- // Otherwise, "Go" is enabled and "Stop" is disabled
-  function uiLoading(isLoading) {
-      go.disabled =  isLoading;
-    stop.disabled = !isLoading;
-  }
-
-  go.addEventListener("touchend", function () {
-    browser.setAttribute("src", url.value);
-  });
-
-  stop.addEventListener("touchend", function () {
-    browser.stop();
-  });
-
- // When the browser starts loading content, we switch the "Go" and "Stop" buttons
-  browser.addEventListener('mozbrowserloadstart', function () {
-    uiLoading(true);
-  });
-
- // When the browser finishes loading content, we switch back the "Go" and "Stop" buttons
-  browser.addEventListener('mozbrowserloadend', function () {
-    uiLoading(false);
-  });
-
- // In case of error, we also switch back the "Go" and "Stop" buttons
-  browser.addEventListener('mozbrowsererror', function (event) {
-    uiLoading(false);
-    alert("Loading error: " + event.detail);
-  });
-
- // When a user follows a link, we make sure the new location is displayed in the address bar
-  browser.addEventListener('mozbrowserlocationchange', function (event) {
-    url.value = event.detail;
-  });
-});</pre>
-
-<h2 id="参考">参考</h2>
-
-<ul>
- <li>{{HTMLElement("iframe")}}</li>
- <li>{{domxref("HTMLIFrameElement")}}</li>
- <li>Stat of <a href="https://wiki.mozilla.org/WebAPI/BrowserAPI" title="https://wiki.mozilla.org/WebAPI/BrowserAPI">implementation on WikiMo</a></li>
-</ul>
diff --git a/files/zh-cn/web/api/webvr_api/webvr_environment_setup/index.html b/files/zh-cn/web/api/webvr_api/webvr_environment_setup/index.html
deleted file mode 100644
index d3ede8add1..0000000000
--- a/files/zh-cn/web/api/webvr_api/webvr_environment_setup/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: WebVR环境配置
-slug: Web/API/WebVR_API/WebVR_environment_setup
-translation_of: Archive/WebVR/WebVR_environment_setup
----
-<p>{{draft("WebVR API文档目前正在更新中以涵盖1.0版本规范, 因此这些信息中的一部分将会过时。如果你对此有任何疑问请联系 ~~chrisdavidmills。")}}</p>
-
-<p class="summary">在这篇文章中, 我们将带你了解配置你的WebVR测试环境所需要做的工作 — 包括硬件和软件配置以及一些常见的错误的解决方法.</p>
-
-<h2 id="硬件">硬件</h2>
-
-<p>首先来看WebVR的硬件需求。</p>
-
-<h3 id="头戴式显示器与位置追踪器">头戴式显示器与位置追踪器</h3>
-
-<p>目前有几款产品可作为VR头戴式显示器,其中最好的是<a href="https://developer.oculus.com/">Oculus Rift</a>,它具有坚固的头戴式显示器和安装在三脚架或监视器上的位置追踪相机。Oculus Rift DK2 目前的零售价是350美元(约2410人民币),但是随着技术的进步和越来越多的头戴设备的出现,预计Oculus Rigt的价格会下降。</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/11037/hw-setup.png" style="display: block; height: 78px; margin: 0px auto; width: 70%;"></p>
-
-<p>对于那些没有能力购买整套VR设备的人,也有其他便宜的产品可以选择。一个VR头戴式显示器其实就是一个高分辨率的屏幕,这个屏幕前面有一组眼镜。显示屏显示的是两个并排的有些偏移和渐晕的屏幕影像的副本,人的两眼各看其中一个,这样就给用户带来立体感,这些对于创建VR景象都是至关重要的。</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10695/stereoscopic.png" style="display: block; height: 540px; margin: 0px auto; width: 960px;"></p>
-
-<p>你可以使用支持的浏览器去感受几近相同的体验,比如使用 Android <a href="https://nightly.mozilla.org/">Nightly</a>版的火狐浏览器—— 如同谷歌的<a href="https://www.google.com/get/cardboard/">Google Cardboard</a>的想法那样,你可以用任何能固定在头部的装置将手机固定在双眼前面,然后通过手机运行VR软件。这里主要的缺点就是没有位置追踪器,手机处理器没有桌面PC的处理器强大,所以体验上相对就没有那么真实(你转动头部的时候你可能得不到和PC上相同的体验,它有可能比较卡),但是,作为一个便宜的入门的设备,它还是不错的。</p>
-
-<h3 id="一台计算机:用于渲染VR场景">一台计算机:用于渲染VR场景</h3>
-
-<p>VR硬件需要提供高精度,低延迟的数据,来提供令人满意的用户体验 — 显示刷新需要达到60fps,否则,用户会觉得卡顿、抖动。为了保证达到这点,单位时间有大量的数据需要处理。因此,运行VR应用的计算机的配置要求比较高。最理想的是,你有台带独显的高配的笔记本或台式电脑,如新版MacBook Pro 15“/ 17”或Mac Pro,或Windows游戏本。如果你的电脑运行比较慢,你的体验会比较糟糕。</p>
-
-<h2 id="软件">软件</h2>
-
-<p>要运行WebVR软件,你需要如下描述的软件设置。</p>
-
-<h3 id="Oculus_Rift_SDK">Oculus Rift SDK</h3>
-
-<p>如果你使用Oculus Rift,你需要在你的系统上下载并安装 <a href="https://developer.oculus.com/downloads/">Oculus Rift SDK</a> 。它包含了VR软件所需的运行环境和<em>OculusWorldDemo</em>示例软件,它对排除故障很有用。</p>
-
-<h3 id="Firefox_Nightly与WebVR_Enabler_Add-on_(或其他可替代的)">Firefox Nightly与WebVR Enabler Add-on (或其他可替代的)</h3>
-
-<p>要设置浏览器,请按照下列步骤操作:</p>
-
-<ol>
- <li>Firefox <a href="https://nightly.mozilla.org/">Nightly</a> 和<a href="https://www.mozilla.org/en-US/firefox/developer/">Developer Edition</a> 都支持WebVR。如果你还没装选择其中之一安装,注意安装最新的版本。</li>
- <li>然后,安装 <a class="external external-icon" href="http://www.mozvr.com/downloads/webvr-addon-0.1.0.xpi">WebVR Enabler Add-on</a> — 这将启用WebVR并禁用多处理浏览(<a class="basiclink-blue" href="https://wiki.mozilla.org/Electrolysis">E10S</a>),这是一种新的Firefox浏览功能,目前与WebVR不兼容。</li>
- <li>最后,重启浏览器。</li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: 手动开启对WebVR的支持,你可以进入 <a>about:config</a> 然后打开dom.vr*选项。 WebVR Enabler Add-on更加的fang方便,它一次可以完成您所需要的一切。</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: 对于移动端用户,Android版Firefox在<a href="http://nightly.mozilla.org/">Nightly builds</a>中也支持WebVR,但是现在还没优化,欢迎反馈意见。</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: 还有可用的WebVR支持的实验性Chrome产品。 要了解更多,请查看Brandon Jones的 <a class="external external-icon" href="http://blog.tojicode.com/2014/07/bringing-vr-to-chrome.html">Bringing VR to Chrome</a>。</p>
-</div>
-
-<h3 id="显示配置">显示配置</h3>
-
-<p>为了获得最佳性能,以下步骤的显示器配置非常重要。 不这样做会导致过度抖动和延迟。 我们正在努力改进这些方面,使WebVR真正的即插即用,但是现在最好的结果需要手动配置。</p>
-
-<h4 id="Windows">Windows</h4>
-
-<p>在控制面板中,先进入<em>Display &gt; Screen Resolution(显示 &gt; 屏幕分辨率)</em>. 设置<em>:</em></p>
-
-<ul>
- <li><em>Orientation</em> to <em>Landscape (flipped). // 横向(翻转)</em></li>
- <li><em>Multiple displays</em> to <em>Extend these displays</em>. // 扩展这些显示器</li>
-</ul>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10683/win-screen-resolution.png" style="display: block; height: 573px; margin: 0px auto; width: 644px;"></p>
-
-<p>然后,进入 <em>Advanced Settings &gt; Monitor &gt; Monitor Settings(高级显示设置 &gt; 监视器 &gt; 监视器设置),</em> 设置屏幕刷新频率为 <em>60Hz</em>.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10685/win-monitor.png" style="display: block; height: 573px; margin: 0px auto; width: 644px;"></p>
-
-<h4 id="Mac">Mac</h4>
-
-<p>首先,进入System Preferences &gt; Displays &gt; Display. 设置:</p>
-
-<ul>
- <li><em>Optimize for</em> to <em>Rift</em></li>
- <li><em>Rotation</em> to <em>90°</em></li>
- <li><em>Refresh</em> to <em>60Hz</em></li>
-</ul>
-
-<p><em><img alt="" src="https://mdn.mozillademos.org/files/10691/mac-displays.png" style="display: block; height: 528px; margin: 0px auto; width: 1342px;"></em></p>
-
-<p>然后,进入 <em>System Preferences <span class="gray5 light px1">&gt; </span>Displays <span class="gray5 light px1">&gt; </span>Arrangement</em> 设置<em>Arrangement</em>为<em>Mirrored</em>.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/10693/mac-displays-mirrored.png" style="display: block; height: 528px; margin: 0px auto; width: 668px;"></p>
-
-<h2 id="故障排除">故障排除</h2>
-
-<p>在这个部分,我们提供一些故障排除方法。</p>
-
-<dl>
- <dt>我的头戴式显示器或者位置追踪器相机不工作</dt>
- <dd>尝试使用Oculus Rift SDK附带的OculusWorldDemo测试系统,如果您使用的是其他的VR硬件设备,则使用配套的测试系统。 如果您的硬件设备完全不工作,请确保已完全按照随附手册中的说明进行设置。 常见的错误包括将镜头盖留在追踪相机上和忘记插入USB电缆。</dd>
- <dt>我的头戴式显示器或者位置追踪器相机还是不工作</dt>
- <dd>一个常见的问题是追踪摄像机停止工作,所以你仍然可以看到图像,但它不会跟着你的头一起旋转。 提示:如果摄像机工作,相机的蓝色指示灯将亮起。 如果WebVR应用程序仍然不工作,并且OculusWorldDemo正常运行,请尝试重新启动浏览器 —— Nightly仍然处于实验性阶段,有时会出现异常。</dd>
- <dt>即使我正确的配置了 {{anch("Display configuration")}},我看到显示的图像卡顿抖动</dt>
- <dd>有可能是您的显卡太慢,您没有独显,或者当Oculus Rift打开时,您的计算机没有切换到显卡。 但我们不能确定适用于所有的电脑。无论哪种情况,你可以通过测试看看发生了什么,比如在Mac上使用<a href="https://gfx.io/">gfxCardStatus</a>软件来测试。 它会让你看到在什么时候集成或独显会切换,或强制使用某一个。 如果它返回消息“您正在使用gfxCardStatus不支持的系统,请确保您使用的是具有双GPU的MacBook Pro。 那么你可能没有GPU,你需要一个更快的处理器或选择容忍。 对于Windows,目前没有类似的应用程序,您必须手动进行更改。</dd>
- <dt>我的VR设备旁的第二个监视器表现很奇怪。</dt>
- <dd>如果你有第二个监视器(或者笔记本的外接显示器),当你使用 VR设备的时候最好将它断开,否则,有时候它会造成奇怪的问题。</dd>
- <dt>Linux系统可以使用吗?</dt>
- <dd>WebVR在Linux系统上目前不能使用。未完待续</dd>
-</dl>