diff options
author | A1lo <yin199909@aliyun.com> | 2022-03-18 21:53:46 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-18 21:53:46 +0800 |
commit | 8824afb494e5398bc0efcf5f7eb78782096fc90c (patch) | |
tree | 92fd44c01908cc7b39da131bcac6a0cae024bb6f /files/zh-cn/web/api | |
parent | e48f0a637c058b51a6268e0c2c384957e03d2b60 (diff) | |
download | translated-content-8824afb494e5398bc0efcf5f7eb78782096fc90c.tar.gz translated-content-8824afb494e5398bc0efcf5f7eb78782096fc90c.tar.bz2 translated-content-8824afb494e5398bc0efcf5f7eb78782096fc90c.zip |
Replace marco `anch` with `<a>` tag for `zh-CN` (#4668)
* replace anch with tag `<a>`
* auto replace anch with scripts
* fix: resolve some incorrect anchors
* replace anch with markdown link in markdown files
* sync with english version for `Properties`
* fix: resolve some incorrect anchors
* using `Specifications` marco to replace `<table>`
* fix: resolve some incorrect anchors
* remove the `noteCard` and add a `h2` head
* fix: resolve some incorrect anchors
* remove the duplicated content
* fix: resolve some incorrect anchors
* fix: resolve some incorrect anchors
* revert the content change and replace anch
* revert the content change and replace anch
* revert the content chang
* fix: correct the `href`
* revert content changes and replace the anch
* fix: resolve some incorrect anchors
* fix: resolve some incorrect anchors
* fix: resolve some incorrect anchors
Diffstat (limited to 'files/zh-cn/web/api')
77 files changed, 128 insertions, 139 deletions
diff --git a/files/zh-cn/web/api/attr/index.html b/files/zh-cn/web/api/attr/index.html index ad4f79e0f3..31028bbfe0 100644 --- a/files/zh-cn/web/api/attr/index.html +++ b/files/zh-cn/web/api/attr/index.html @@ -13,7 +13,7 @@ translation_of: Web/API/Attr <p>{{InheritanceDiagram}}</p> -<div class="warning"><strong>警告:</strong>从Gecko 7.0开始{{geckoRelease("7.0")}},控制台会输出这些方法和属性将会被移除的警告信息。你应该对代码进行相应的修正。点击{{anch("Deprecated properties and methods")}}查看完整的列表。</div> +<div class="warning"><strong>警告:</strong>从Gecko 7.0开始{{geckoRelease("7.0")}},控制台会输出这些方法和属性将会被移除的警告信息。你应该对代码进行相应的修正。点击<a href="#废弃的属性和方法">废弃的属性和方法</a>查看完整的列表。</div> <div class="warning">在<a href="https://www.w3.org/standards/history/dom">DOM4[REC]</a>中,为了规范化Attr的实现,它不再继承自{{domxref("Node")}}。在目前<a href="https://www.w3.org/standards/history/dom41">DOM4.1[WD]</a>中又有变动,因此不建议使用Attr对象上有关{{domxref("Node")}}的属性和方法。</div> diff --git a/files/zh-cn/web/api/beforeunloadevent/index.html b/files/zh-cn/web/api/beforeunloadevent/index.html index 6063ef1282..f85b0e60a4 100644 --- a/files/zh-cn/web/api/beforeunloadevent/index.html +++ b/files/zh-cn/web/api/beforeunloadevent/index.html @@ -11,7 +11,7 @@ translation_of: Web/API/BeforeUnloadEvent <p><strong><code>beforeunload</code></strong> 事件触发于 window、document 和它们的资源即将卸载时。 </p> -<p>当事件属性 <code>returnValue</code> 被赋值为非空字符串时,会弹出一个对话框,让用户确认是否离开页面(示例如下)。否则,事件被静默处理。一些浏览器实现仅在框架或内置框架接收到用户手势或交互时才显示对话框。在 {{anch("浏览器兼容性")}} 中查看更多信息。</p> +<p>当事件属性 <code>returnValue</code> 被赋值为非空字符串时,会弹出一个对话框,让用户确认是否离开页面(示例如下)。否则,事件被静默处理。一些浏览器实现仅在框架或内置框架接收到用户手势或交互时才显示对话框。在 <a href="#浏览器兼容性">浏览器兼容性</a> 中查看更多信息。</p> <table class="properties"> <tbody> diff --git a/files/zh-cn/web/api/btoa/index.html b/files/zh-cn/web/api/btoa/index.html index 1ff44702a1..1c02996285 100644 --- a/files/zh-cn/web/api/btoa/index.html +++ b/files/zh-cn/web/api/btoa/index.html @@ -18,7 +18,7 @@ original_slug: Web/API/WindowOrWorkerGlobalScope/btoa <p><strong><code>WindowOrWorkerGlobalScope.btoa()</code> </strong> 从 {{jsxref("String")}} 对象中创建一个 base-64 编码的 ASCII 字符串,其中字符串中的每个字符都被视为一个二进制数据字节。</p> <div class="note"> -<p><strong>Note</strong>: 由于这个函数将每个字符视为二进制数据的字节,而不管实际组成字符的字节数是多少,所以如果任何字符的{{Glossary("code point", "码位")}}超出 <code>0x00</code> ~ <code>0xFF</code> 这个范围,则会引发 <code>InvalidCharacterError</code> 异常。请参阅 {{anch("Unicode_字符串")}} ,该示例演示如何编码含有码位超出 <code>0x00</code> ~ <code>0xFF</code> 范围的字符的字符串。</p> +<p><strong>Note</strong>: 由于这个函数将每个字符视为二进制数据的字节,而不管实际组成字符的字节数是多少,所以如果任何字符的{{Glossary("code point", "码位")}}超出 <code>0x00</code> ~ <code>0xFF</code> 这个范围,则会引发 <code>InvalidCharacterError</code> 异常。请参阅 <a href="#unicode_字符串">Unicode_字符串</a> ,该示例演示如何编码含有码位超出 <code>0x00</code> ~ <code>0xFF</code> 范围的字符的字符串。</p> </div> <h2 id="语法">语法</h2> diff --git a/files/zh-cn/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/zh-cn/web/api/canvas_api/tutorial/drawing_shapes/index.html index 8eee553d23..d656a1ad23 100644 --- a/files/zh-cn/web/api/canvas_api/tutorial/drawing_shapes/index.html +++ b/files/zh-cn/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -188,7 +188,7 @@ translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes <p>如果你想看到连续的线,你可以移除调用的moveTo()。</p> <div class="note"> -<p><strong>注意:需要学习更多关于arc()函数的内容,请看下面的</strong>{{anch("圆弧")}}</p> +<p><strong>注意:需要学习更多关于arc()函数的内容,请看下面的</strong><a href="#圆弧">圆弧</a></p> </div> <h3 id="线">线</h3> @@ -400,7 +400,7 @@ translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes <h3 id="矩形">矩形</h3> -<p>直接在画布上绘制矩形的三个额外方法,正如我们开始所见的{{anch("绘制矩形")}},同样,也有rect()方法,将一个矩形路径增加到当前路径上。</p> +<p>直接在画布上绘制矩形的三个额外方法,正如我们开始所见的<a href="#绘制矩形">绘制矩形</a>,同样,也有rect()方法,将一个矩形路径增加到当前路径上。</p> <dl> <dt><code>rect(<em>x</em>, <em>y</em>, <em>width</em>, <em>height</em>)</code></dt> diff --git a/files/zh-cn/web/api/clipboard/index.html b/files/zh-cn/web/api/clipboard/index.html index 834376f01e..05e3313323 100644 --- a/files/zh-cn/web/api/clipboard/index.html +++ b/files/zh-cn/web/api/clipboard/index.html @@ -23,7 +23,7 @@ translation_of: Web/API/Clipboard <p>如果用户没有适时使用 <a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a> 授予相应权限和<code>"clipboard-read"</code> 或 <code>"clipboard-write"</code> 权限,调用 <code>Clipboard</code> 对象的方法不会成功。</p> <div class="note"> -<p><strong>注意:</strong>实际上,现在浏览器对于访问剪贴板权限的索取各有不同,在章节 {{anch("剪贴板可用性")}} 查看更多细节。</p> +<p><strong>注意:</strong>实际上,现在浏览器对于访问剪贴板权限的索取各有不同,在章节 <a href="#剪贴板可用性">剪贴板可用性</a> 查看更多细节。</p> </div> <p>所有剪贴板 API 方法都是异步的;它们返回一个 {{jsxref("Promise")}} 对象,在剪贴板访问完成后被执行。如果剪贴板访问被拒绝,promise 也会被拒绝。</p> diff --git a/files/zh-cn/web/api/clipboard/read/index.html b/files/zh-cn/web/api/clipboard/read/index.html index 7b0ffa7bda..4fa5d071e2 100644 --- a/files/zh-cn/web/api/clipboard/read/index.html +++ b/files/zh-cn/web/api/clipboard/read/index.html @@ -16,7 +16,7 @@ translation_of: Web/API/Clipboard/read <p>To read from the clipboard, you must first have the <code>"clipboard-read"</code> permission.</p> <div class="note"> -<p><strong>Note:</strong> The asynchronous Clipboard and <a href="/en-US/docs/Web/API/Permissions_API">Permissions APIs</a> are still in the process of being integrated into most browsers, so they often deviate from the official rules for permissions and the like. Be sure to review the {{anch("Browser compatibility", "compatibility table")}} before using these methods.</p> +<p><strong>Note:</strong> The asynchronous Clipboard and <a href="/en-US/docs/Web/API/Permissions_API">Permissions APIs</a> are still in the process of being integrated into most browsers, so they often deviate from the official rules for permissions and the like. Be sure to review the <a href="#浏览器兼容性">compatibility table</a> before using these methods.</p> </div> <h2 id="语法">语法</h2> diff --git a/files/zh-cn/web/api/clipboard/write/index.html b/files/zh-cn/web/api/clipboard/write/index.html index a7f69da118..ef3cf82beb 100644 --- a/files/zh-cn/web/api/clipboard/write/index.html +++ b/files/zh-cn/web/api/clipboard/write/index.html @@ -16,7 +16,7 @@ translation_of: Web/API/Clipboard/write <p>但是你要提前获取 "<a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a>" 的 <code>"clipboard-write"</code> 权限才能将数据写入到剪贴板。</p> <div class="note"> -<p><strong>注意:</strong> 浏览器对这个异步剪贴板的 API 仍然在讨论中。所以在使用它之前请检查 {{anch("Browser compatibility", "compatibility table")}} 和 {{SectionOnPage("/en-US/docs/Web/API/Clipboard", "Clipboard availability")}} 以获得更多的兼容性信息。</p> +<p><strong>注意:</strong> 浏览器对这个异步剪贴板的 API 仍然在讨论中。所以在使用它之前请检查 <a href="#浏览器兼容性">浏览器兼容性</a> 和 {{SectionOnPage("/en-US/docs/Web/API/Clipboard", "Clipboard availability")}} 以获得更多的兼容性信息。</p> </div> <h2 id="语法">语法</h2> diff --git a/files/zh-cn/web/api/clipboard/writetext/index.html b/files/zh-cn/web/api/clipboard/writetext/index.html index e60e7204fe..2b6d77f43d 100644 --- a/files/zh-cn/web/api/clipboard/writetext/index.html +++ b/files/zh-cn/web/api/clipboard/writetext/index.html @@ -14,7 +14,7 @@ translation_of: Web/API/Clipboard/writeText <p>{{domxref("Clipboard")}} 接口的 <strong><code>writeText()</code></strong> 方法可以写入特定字符串到操作系统的剪切板。</p> <div class="note"> -<p><strong>Note:</strong> 规范要求在写入剪贴板之前使用 <a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a> 获取“剪贴板写入”权限。但是,不同浏览器的具体要求不同,因为这是一个新的API。有关详细信息,请查看{{anch("Browser compatibility", "compatibility table")}} and {{SectionOnPage("/en-US/docs/Web/API/Clipboard", "Clipboard availability")}}。</p> +<p><strong>Note:</strong> 规范要求在写入剪贴板之前使用 <a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a> 获取“剪贴板写入”权限。但是,不同浏览器的具体要求不同,因为这是一个新的API。有关详细信息,请查看<a href="#浏览器兼容性">浏览器兼容性</a> and {{SectionOnPage("/en-US/docs/Web/API/Clipboard", "Clipboard availability")}}。</p> </div> <h2 id="语法">语法</h2> @@ -63,6 +63,4 @@ translation_of: Web/API/Clipboard/writeText <h2 id="浏览器兼容性">浏览器兼容性</h2> - - <p>{{Compat("api.Clipboard.writeText")}}</p> diff --git a/files/zh-cn/web/api/console/index.html b/files/zh-cn/web/api/console/index.html index 053d2784c0..be091e63ef 100644 --- a/files/zh-cn/web/api/console/index.html +++ b/files/zh-cn/web/api/console/index.html @@ -18,7 +18,7 @@ translation_of: Web/API/Console <pre class="brush: js notranslate">console.log("Failed to open the specified link")</pre> -<p>本页面记录了 <code>Console</code> 对象上的 {{anch("Methods")}}(方法)并给出了几个 {{anch("Usage")}} (用例)。</p> +<p>本页面记录了 <code>Console</code> 对象上的<a href="#方法">方法</a>并给出了几个 <a href="#usage">Usage</a> (用例)。</p> <p>{{AvailableInWorkers}}</p> diff --git a/files/zh-cn/web/api/credentialscontainer/index.html b/files/zh-cn/web/api/credentialscontainer/index.html index 73092cb5f0..6ea38b4409 100644 --- a/files/zh-cn/web/api/credentialscontainer/index.html +++ b/files/zh-cn/web/api/credentialscontainer/index.html @@ -27,7 +27,7 @@ translation_of: Web/API/CredentialsContainer <dt>{{domxref("CredentialsContainer.get()")}}</dt> <dd>Returns a {{jsxref("Promise")}} that resolves with the {{domxref("Credential")}} instance that matches the provided parameters.</dd> <dt>{{domxref("CredentialsContainer.preventSilentAccess()")}}</dt> - <dd>Sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns an empty {{jsxref("Promise")}}. For example, you might call this, after a user signs out of a website to ensure that he/she isn't automatically signed in on the next site visit. Earlier versions of the spec called this method <code>requireUserMediation()</code>. See {{anch("Browser compatibility")}} for support details.</dd> + <dd>Sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns an empty {{jsxref("Promise")}}. For example, you might call this, after a user signs out of a website to ensure that he/she isn't automatically signed in on the next site visit. Earlier versions of the spec called this method <code>requireUserMediation()</code>. See <a href="#浏览器兼容性">Browser compatibility</a> for support details.</dd> <dt>{{domxref("CredentialsContainer.store()")}}</dt> <dd>Stores a set of credentials for a user, inside a provided {{domxref("Credential")}} instance and returns that instance in a {{jsxref("Promise")}}.</dd> </dl> diff --git a/files/zh-cn/web/api/cssrule/index.html b/files/zh-cn/web/api/cssrule/index.html index 184e25376b..3af32d9c65 100644 --- a/files/zh-cn/web/api/cssrule/index.html +++ b/files/zh-cn/web/api/cssrule/index.html @@ -10,7 +10,7 @@ translation_of: Web/API/CSSRule --- <div>{{APIRef("CSSOM")}}</div> -<p><strong><code>CSSRule</code></strong> 接口表示一条 CSS 规则。有几种不同的规则类型,在下面的{{anch("类型常量")}}部分中有悉数列出。</p> +<p><strong><code>CSSRule</code></strong> 接口表示一条 CSS 规则。有几种不同的规则类型,在下面的<a href="#类型常量">类型常量</a>部分中有悉数列出。</p> <p><code>CSSRule</code> 接口指定了所有类型的规则的公共属性,而特定类型的规则的专有属性则在这些规则各自类型的、更专用的接口中被指定。</p> @@ -26,7 +26,7 @@ translation_of: Web/API/CSSRule <dt id="parentStyleSheet">{{domxref("CSSRule.parentStyleSheet")}} {{readonlyinline}}</dt> <dd>返回包含此规则的样式表的 {{domxref("CSSStyleSheet")}} 对象。</dd> <dt id="type">{{domxref("CSSRule.type")}} {{readonlyinline}}</dt> - <dd>规则类型,表示 CSS 规则类型 {{anch("类型常量")}} 中的一种类型。</dd> + <dd>规则类型,表示 CSS 规则类型 <a href="#类型常量">类型常量</a> 中的一种类型。</dd> </dl> <h2 id="常量">常量</h2> diff --git a/files/zh-cn/web/api/cssstylesheet/index.html b/files/zh-cn/web/api/cssstylesheet/index.html index 1252210d3b..3824e21c62 100644 --- a/files/zh-cn/web/api/cssstylesheet/index.html +++ b/files/zh-cn/web/api/cssstylesheet/index.html @@ -27,7 +27,7 @@ translation_of: Web/API/CSSStyleSheet <p>另一条规则可能是一条“@”规则(<em>at-rule</em>),例如 {{cssxref("@import")}} 或 {{cssxref("@media")}} 等等。</p> -<p>在{{anch("说明")}}部分中查看 <code>CSSStyleSheet</code> 对象的多种获取方式。</p> +<p>在<a href="#说明">说明</a>部分中查看 <code>CSSStyleSheet</code> 对象的多种获取方式。</p> <h2 id="属性">属性</h2> diff --git a/files/zh-cn/web/api/datatransferitem/getasstring/index.html b/files/zh-cn/web/api/datatransferitem/getasstring/index.html index 3b8147f7f6..ce731b39dd 100644 --- a/files/zh-cn/web/api/datatransferitem/getasstring/index.html +++ b/files/zh-cn/web/api/datatransferitem/getasstring/index.html @@ -16,7 +16,7 @@ translation_of: Web/API/DataTransferItem/getAsString <dl> <dt><code>callback</code></dt> - <dd>A callback function that has access to the {{domxref("DataTransferItem","data transfer item's")}} string data. See {{anch("Callback")}} below for details.</dd> + <dd>A callback function that has access to the {{domxref("DataTransferItem","data transfer item's")}} string data. See <a href="#callback">Callback</a> below for details.</dd> </dl> <h3 id="Return_value">Return value</h3> diff --git a/files/zh-cn/web/api/document/createelement/index.html b/files/zh-cn/web/api/document/createelement/index.html index a0b1fecfad..e45a93dac1 100644 --- a/files/zh-cn/web/api/document/createelement/index.html +++ b/files/zh-cn/web/api/document/createelement/index.html @@ -24,7 +24,7 @@ translation_of: Web/API/Document/createElement <dt><var>tagName</var></dt> <dd>指定要创建元素类型的字符串,创建元素时的 {{domxref("Node.nodeName", "nodeName")}} 使用 <code>tagName</code> 的值为初始化,该方法不允许使用限定名称(如:"html:a"),在 HTML 文档上调用 <code>createElement()</code> 方法创建元素之前会将<code>tagName</code> 转化成小写,在 Firefox、Opera 和 Chrome 内核中,<code>createElement(null)</code> 等同于 <code>createElement("null")</code></dd> <dt><var>options</var>{{optional_inline}}</dt> - <dd>一个可选的参数 <code>ElementCreationOptions</code> 是包含一个属性名为 <code>is</code> 的对象,该对象的值是用 <code>customElements.define()</code> 方法定义过的一个自定义元素的标签名。为了向前兼容较老版本的 <a href="https://www.w3.org/TR/custom-elements/">Custom Elements specification</a>, 有一些浏览器会允许你传一个值为自定义元素的标签名的字符串作为该参数的值。可以参考本页下方的 {{anch("Web component example")}} Google 的 <a href="https://developers.google.com/web/fundamentals/primers/customelements/#extendhtml">Extending native HTML elements</a> 文档仔细了解如何使用该参数。</dd> + <dd>一个可选的参数 <code>ElementCreationOptions</code> 是包含一个属性名为 <code>is</code> 的对象,该对象的值是用 <code>customElements.define()</code> 方法定义过的一个自定义元素的标签名。为了向前兼容较老版本的 <a href="https://www.w3.org/TR/custom-elements/">Custom Elements specification</a>, 有一些浏览器会允许你传一个值为自定义元素的标签名的字符串作为该参数的值。可以参考本页下方的 <a href="#web_component_示例">Web component 示例</a> Google 的 <a href="https://developers.google.com/web/fundamentals/primers/customelements/#extendhtml">Extending native HTML elements</a> 文档仔细了解如何使用该参数。</dd> </dl> <h3 id="返回值">返回值</h3> diff --git a/files/zh-cn/web/api/document/createevent/index.html b/files/zh-cn/web/api/document/createevent/index.html index d371052ddc..efcd7e1288 100644 --- a/files/zh-cn/web/api/document/createevent/index.html +++ b/files/zh-cn/web/api/document/createevent/index.html @@ -20,7 +20,7 @@ translation_of: Web/API/Document/createEvent <ul> <li><code>event</code> 就是被创建的 <a href="/zh-CN/docs/DOM/event" title="DOM/event">Event</a> 对象.</li> - <li><code>type</code> 是一个字符串,表示要创建的事件类型。事件类型可能包括<code>"UIEvents"</code>, <code>"MouseEvents"</code>, <code>"MutationEvents"</code>, 或者 <code>"HTMLEvents"</code>。请查看 {{Anch("Notes")}} 章节获取详细信息 。</li> + <li><code>type</code> 是一个字符串,表示要创建的事件类型。事件类型可能包括<code>"UIEvents"</code>, <code>"MouseEvents"</code>, <code>"MutationEvents"</code>, 或者 <code>"HTMLEvents"</code>。请查看 <a href="#notes">Notes</a> 章节获取详细信息 。</li> </ul> <h2 id="Example" name="Example">示例</h2> diff --git a/files/zh-cn/web/api/document/createnodeiterator/index.html b/files/zh-cn/web/api/document/createnodeiterator/index.html index 1e1b653d7a..139c554ef1 100644 --- a/files/zh-cn/web/api/document/createnodeiterator/index.html +++ b/files/zh-cn/web/api/document/createnodeiterator/index.html @@ -98,12 +98,12 @@ translation_of: Web/API/Document/createNodeIterator </table> </dd> <dt><code>filter</code> {{ optional_inline() }}</dt> - <dd>是实现 {{ domxref("NodeFilter") }} 接口的对象; 其 <code>acceptNode()</code> 方法会对从根节点开始到子树中的每个节点都调用一次,哪些节点需要进入迭代节点列表等待调用则取决于whatToShow参数(也可以使用一个简单的回调函数代替<code>acceptNode()</code>)。该方法需要返回下列常量之一: <code>NodeFilter.FILTER_ACCEPT</code> ,<code>NodeFilter.FILTER_REJECT</code> 或 <code>NodeFilter.FILTER_SKIP</code>(见<a href="https://developer.mozilla.org/zh-CN/docs/Web/API/NodeFilter">NodeFilter</a>),参见{{ anch("示例") }}。</dd> + <dd>是实现 {{ domxref("NodeFilter") }} 接口的对象; 其 <code>acceptNode()</code> 方法会对从根节点开始到子树中的每个节点都调用一次,哪些节点需要进入迭代节点列表等待调用则取决于whatToShow参数(也可以使用一个简单的回调函数代替<code>acceptNode()</code>)。该方法需要返回下列常量之一: <code>NodeFilter.FILTER_ACCEPT</code> ,<code>NodeFilter.FILTER_REJECT</code> 或 <code>NodeFilter.FILTER_SKIP</code>(见<a href="https://developer.mozilla.org/zh-CN/docs/Web/API/NodeFilter">NodeFilter</a>),参见<a href="#示例">示例</a>。</dd> </dl> <div class="note"><strong>注意: </strong>在Gecko12.0{{ geckoRelease("12.0") }}以前,这个方法接收第四个可选的参数(<code>entityReferenceExpansion</code>),这不是DOM4 规范中的一部分,因此被移除了。这个参数表示实体引用节点的子代对于迭代器是否可见。因为浏览器不会创建这样的节点,这个参数没有任何作用。</div> -<h2 id="Example" name="Example">示例</h2> +<h2 id="示例">示例</h2> <pre>const nodeIterator = document.createNodeIterator( document.body, diff --git a/files/zh-cn/web/api/document/execcommand/index.html b/files/zh-cn/web/api/document/execcommand/index.html index 355a4bd33f..cf51a9be23 100644 --- a/files/zh-cn/web/api/document/execcommand/index.html +++ b/files/zh-cn/web/api/document/execcommand/index.html @@ -31,7 +31,7 @@ translation_of: Web/API/Document/execCommand <dl> <dt><code>aCommandName</code></dt> - <dd>一个 {{domxref("DOMString")}} ,命令的名称。可用命令列表请参阅 {{anch("命令")}} 。</dd> + <dd>一个 {{domxref("DOMString")}} ,命令的名称。可用命令列表请参阅 <a href="#命令">命令</a> 。</dd> <dt><code>aShowDefaultUI</code></dt> <dd>一个 {{jsxref("Boolean")}}, 是否展示用户界面,一般为 false。Mozilla 没有实现。</dd> <dt><code>aValueArgument</code></dt> diff --git a/files/zh-cn/web/api/document/keypress_event/index.html b/files/zh-cn/web/api/document/keypress_event/index.html index 297a595b2b..a9c2bf2bf3 100644 --- a/files/zh-cn/web/api/document/keypress_event/index.html +++ b/files/zh-cn/web/api/document/keypress_event/index.html @@ -78,7 +78,7 @@ translation_of: Web/API/Document/keypress_event <tr> <td><code>key</code> {{readonlyInline}}</td> <td>DOMString (string)</td> - <td>The key value of the key represented by the event. If the value has a printed representation, this attribute's value is the same as the <code>char</code> attribute. Otherwise, it's one of the key value strings specified in {{ anch("Key values") }}. If the key can't be identified, this is the string "Unidentified". See <a href="/en-US/docs/Web/API/KeyboardEvent#Key_names_and_Char_values">key names and char values</a> for the detail. Read Only.</td> + <td>The key value of the key represented by the event. If the value has a printed representation, this attribute's value is the same as the <code>char</code> attribute. Otherwise, it's one of the key value strings specified in <a href="#key_values">Key Values</a>. If the key can't be identified, this is the string "Unidentified". See <a href="/en-US/docs/Web/API/KeyboardEvent#Key_names_and_Char_values">key names and char values</a> for the detail. Read Only.</td> </tr> <tr> <td><code>charCode</code> {{readonlyInline}}</td> @@ -90,7 +90,7 @@ translation_of: Web/API/Document/keypress_event <tr> <td><code>keyCode</code> {{readonlyInline}}</td> <td>Unsigned long (int)</td> - <td>A system and implementation dependent numerical code identifying the unmodified value of the pressed key. This is usually the decimal ASCII ({{ RFC(20) }}) or Windows 1252 code corresponding to the key; see {{ anch("Virtual key codes") }} for a list of common values. If the key can't be identified, this value is 0. + <td>A system and implementation dependent numerical code identifying the unmodified value of the pressed key. This is usually the decimal ASCII ({{ RFC(20) }}) or Windows 1252 code corresponding to the key; see <a href="virtual_key_codes">Virtual key codes</a> for a list of common values. If the key can't be identified, this value is 0. <div class="warning"><strong>Warning:</strong> This attribute is deprecated; you should use <code>key</code> instead, if available.</div> </td> </tr> @@ -137,7 +137,6 @@ translation_of: Web/API/Document/keypress_event <td><code>true</code> if the meta key was down when the event was fired. <code>false</code> otherwise.</td> </tr> </tbody> -</table> <h2 id="Related_Events">Related Events</h2> diff --git a/files/zh-cn/web/api/document/queryselector/index.html b/files/zh-cn/web/api/document/queryselector/index.html index 8a449768ec..8f0332d2dc 100644 --- a/files/zh-cn/web/api/document/queryselector/index.html +++ b/files/zh-cn/web/api/document/queryselector/index.html @@ -29,7 +29,7 @@ translation_of: Web/API/Document/querySelector </dl> <div class="note"> -<p><strong>提示:</strong>必须使用反斜杠字符转义不属于标准CSS语法的字符。 由于JavaScript也使用退格转义,因此在使用这些字符编写字符串文字时必须特别小心。 有关详细信息,请参阅{{anch("Escaping special characters")}}。</p> +<p><strong>提示:</strong>必须使用反斜杠字符转义不属于标准CSS语法的字符。 由于JavaScript也使用退格转义,因此在使用这些字符编写字符串文字时必须特别小心。 有关详细信息,请参阅<a href="#转义特殊字符">转义特殊字符</a>。</p> </div> <h3 id="返回值">返回值</h3> diff --git a/files/zh-cn/web/api/document/queryselectorall/index.html b/files/zh-cn/web/api/document/queryselectorall/index.html index 0e43d6020b..0f679ce98d 100644 --- a/files/zh-cn/web/api/document/queryselectorall/index.html +++ b/files/zh-cn/web/api/document/queryselectorall/index.html @@ -39,7 +39,7 @@ translation_of: Web/API/Document/querySelectorAll </dl> <div class="note"> -<p><strong>注意:</strong> 必须使用反斜杠字符转义不属于标准CSS语法的字符。 由于JavaScript也使用反斜杠转义,因此在使用这些字符编写字符串文字时必须特别小心。 有关详细信息,请参阅 {{anch("Escaping special characters")}}</p> +<p><strong>注意:</strong> 必须使用反斜杠字符转义不属于标准CSS语法的字符。 由于JavaScript也使用反斜杠转义,因此在使用这些字符编写字符串文字时必须特别小心。有关详细信息,请参阅<a href="/zh-CN/docs/Web/API/Document/querySelector#转义特殊字符">转义特殊字符</a></p> </div> <h3 id="返回值">返回值</h3> @@ -163,11 +163,7 @@ inner.length; // 0 <h2 id="浏览器兼容性">浏览器兼容性</h2> -<div> - - <p>{{Compat("api.Document.querySelectorAll")}}</p> -</div> <h2 id="相关连接">相关连接</h2> diff --git a/files/zh-cn/web/api/document/title/index.html b/files/zh-cn/web/api/document/title/index.html index 40056fafe2..9b91ecff0e 100644 --- a/files/zh-cn/web/api/document/title/index.html +++ b/files/zh-cn/web/api/document/title/index.html @@ -10,7 +10,7 @@ translation_of: Web/API/Document/title <h2 id="Syntax" name="Syntax">语法</h2> <pre class="syntaxbox"><em>var docTitle</em> = <em>document</em>.title; </pre> -<p><code>title</code> 是一个包含 <code>document</code> 标题的字符串。如果通过设置 <code>document.title</code> 将标题覆盖,则返回覆盖后的值。否则返回标签里指定的标题(参见下面的 {{Anch("Notes")}})。</p> +<p><code>title</code> 是一个包含 <code>document</code> 标题的字符串。如果通过设置 <code>document.title</code> 将标题覆盖,则返回覆盖后的值。否则返回标签里指定的标题(参见下面的 <a href="#notes">Notes</a>)。</p> <pre class="syntaxbox"><em>document</em>.title = <em>newTitle</em>; </pre> <p><code>newTitle</code> 是文档的新标题。赋值操作影响 <code>document.title</code> 的返回值,<span style="line-height: 1.5;">文档的显示标题(即窗口或标签页顶部的标题栏),另外还会影响文档的 DOM,即改变 HTML 文档中 </span><code style="font-style: normal; line-height: 1.5;"><title></code><span style="line-height: 1.5;"> 元素的内容。</span></p> diff --git a/files/zh-cn/web/api/domexception/index.html b/files/zh-cn/web/api/domexception/index.html index 7616ea3c45..a5181039a5 100644 --- a/files/zh-cn/web/api/domexception/index.html +++ b/files/zh-cn/web/api/domexception/index.html @@ -24,7 +24,7 @@ translation_of: Web/API/DOMException <dl> <dt>{{domxref("DOMException.code")}} {{deprecated_inline}} {{readOnlyInline}}</dt> - <dd>返回一个 <code>short</code>,包含 {{anch("Error codes", "error code constants")}} 中的一个,或者返回 <code>0</code>,如果没有匹配的话。这个字段由于历史原因被使用。现在不再使用这个新的DOM异常:他们把这个信息放入 {{domxref("DOMException.name")}} 属性。</dd> + <dd>返回一个 <code>short</code>,包含错误代码常量中的一个,或者返回 <code>0</code>,如果没有匹配的话。这个字段由于历史原因被使用。现在不再使用这个新的DOM异常:他们把这个信息放入 {{domxref("DOMException.name")}} 属性。</dd> <dt>{{domxref("DOMException.message")}} {{readOnlyInline}}</dt> <dd>返回一个 {{ domxref("DOMString") }} 代表与给定的<a href="/en-US/docs/Web/API/DOMException#Error_names">错误名称</a>有关信息或描述。</dd> <dt>{{domxref("DOMException.name")}} {{readOnlyInline}}</dt> diff --git a/files/zh-cn/web/api/element/getattribute/index.html b/files/zh-cn/web/api/element/getattribute/index.html index ce97f4a004..f6ce24319a 100644 --- a/files/zh-cn/web/api/element/getattribute/index.html +++ b/files/zh-cn/web/api/element/getattribute/index.html @@ -9,7 +9,7 @@ translation_of: Web/API/Element/getAttribute <h2 id="Summary" name="Summary">概要</h2> -<p><span><strong><code>getAttribute()</code></strong> 返回元素上</span>一个指定的属性<span>值。</span>如果指定的属性不存在,则返回 <code>null</code> 或 <code>""</code> (空字符串);具体细节, 请参阅 {{Anch("Notes")}} 部分。</p> +<p><span><strong><code>getAttribute()</code></strong> 返回元素上</span>一个指定的属性<span>值。</span>如果指定的属性不存在,则返回 <code>null</code> 或 <code>""</code> (空字符串);具体细节, 请参阅 <a href="#notes">Notes</a> 部分。</p> <h2 id="Syntax" name="Syntax">语法</h2> diff --git a/files/zh-cn/web/api/element/setattribute/index.html b/files/zh-cn/web/api/element/setattribute/index.html index 7a35901b5b..48de06340a 100644 --- a/files/zh-cn/web/api/element/setattribute/index.html +++ b/files/zh-cn/web/api/element/setattribute/index.html @@ -37,7 +37,7 @@ translation_of: Web/API/Element/setAttribute <p>尽管对于不存在的属性,<code><a href="/en-US/docs/DOM/element.getAttribute" title="DOM/element.getAttribute">getAttribute()</a></code> 返回 <code>null</code>,你还是应该使用 <code><a href="/en-US/docs/DOM/element.removeAttribute" title="DOM/element.removeAttribute">removeAttribute()</a></code> 代替 <code><em>elt</em>.setAttribute(<em>attr</em>, null)</code> 来删除属性。</p> -<p>布尔属性(原文是Boolean attributes)只要出现在元素上就会被认为是 <code>true</code> ,无论它的值是什么; 一般来说, 你应该将 <code>value</code> 设置为空字符串 (<code>""</code>) 。(一些人使用这个属性的名称作为值; 这不会出现什么问题,但这是不规范的). See the {{anch("Example", "example")}} below for a practical demonstration.</p> +<p>布尔属性(原文是Boolean attributes)只要出现在元素上就会被认为是 <code>true</code> ,无论它的值是什么; 一般来说, 你应该将 <code>value</code> 设置为空字符串 (<code>""</code>) 。(一些人使用这个属性的名称作为值; 这不会出现什么问题,但这是不规范的). See the <a href="#示例">example</a> below for a practical demonstration.</p> <p>由于将指定的值转换为字符串,因此指定null不一定能达到您的期望。 而不是删除属性或将其值设置为{{jsxref("null")}},而是将属性的值设置为字符串“ null”。 如果要删除属性,请调用{{domxref("Element.removeAttribute”,“ removeAttribute()")}}}。</p> @@ -52,7 +52,7 @@ translation_of: Web/API/Element/setAttribute <dd>指定的属性名称包含一个或多个在属性名称中无效的字符。</dd> </dl> -<h2 id="例子">例子</h2> +<h2 id="示例">示例</h2> <p>在下面的例子中,<code>setAttribute()</code> 被用于设置 {{HTMLElement("button")}} 上的属性。</p> diff --git a/files/zh-cn/web/api/event/eventphase/index.html b/files/zh-cn/web/api/event/eventphase/index.html index d5be77ae7a..fae6a99163 100644 --- a/files/zh-cn/web/api/event/eventphase/index.html +++ b/files/zh-cn/web/api/event/eventphase/index.html @@ -12,7 +12,7 @@ translation_of: Web/API/Event/eventPhase <pre class="brush: js"><em>var phase</em> = event.eventPhase; </pre> -<p>返回一个代表当前执行阶段的 整数值,下面列出了不同的执行阶段{{anch("Event phase constants")}}.</p> +<p>返回一个代表当前执行阶段的 整数值,下面列出了不同的执行阶段<a href="#事件阶段常量">事件阶段常量</a>.</p> <h2 id="常量">常量</h2> diff --git a/files/zh-cn/web/api/eventtarget/addeventlistener/index.html b/files/zh-cn/web/api/eventtarget/addeventlistener/index.html index 64f66c8e1c..d0e42edb58 100644 --- a/files/zh-cn/web/api/eventtarget/addeventlistener/index.html +++ b/files/zh-cn/web/api/eventtarget/addeventlistener/index.html @@ -33,13 +33,13 @@ Non-standard_inline}}); // Gecko/Mozilla only <dt><code>type</code></dt> <dd>表示监听<a href="/zh-CN/docs/Web/Events">事件类型</a>的字符串。</dd> <dt><code>listener</code></dt> - <dd>当所监听的事件类型触发时,会接收到一个事件通知(实现了 {{domxref("Event")}} 接口的对象)对象。<code>listener</code> 必须是一个实现了 {{domxref("EventListener")}} 接口的对象,或者是一个<a href="/zh-CN/docs/Web/JavaScript/Guide/Functions">函数</a>。有关回调本身的详细信息,请参阅{{anch("The event listener callback")}} </dd> + <dd>当所监听的事件类型触发时,会接收到一个事件通知(实现了 {{domxref("Event")}} 接口的对象)对象。<code>listener</code> 必须是一个实现了 {{domxref("EventListener")}} 接口的对象,或者是一个<a href="/zh-CN/docs/Web/JavaScript/Guide/Functions">函数</a>。有关回调本身的详细信息,请参阅<a href="#事件监听回调">事件监听回调</a> </dd> <dt>options {{optional_inline}}</dt> <dd>一个指定有关 <code>listener </code>属性的可选参数<strong>对象</strong>。可用的选项如下: <ul> <li><code>capture</code>: {{jsxref("Boolean")}},表示 <code>listener</code> 会在该类型的事件捕获阶段传播到该 <code>EventTarget</code> 时触发。</li> <li><code>once</code>: {{jsxref("Boolean")}},表示 <code>listener 在添加之后最多只调用一次。如果是</code> <code>true,</code> <code>listener</code> 会在其被调用之后自动移除。</li> - <li><code>passive</code>: {{jsxref("Boolean")}},设置为true时,表示 <code>listener</code> 永远不会调用 <code>preventDefault()</code>。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。查看 {{anch("使用 passive 改善的滚屏性能")}} 了解更多.</li> + <li><code>passive</code>: {{jsxref("Boolean")}},设置为true时,表示 <code>listener</code> 永远不会调用 <code>preventDefault()</code>。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。查看 <a href="#使用_passive_改善的滚屏性能">使用 passive 改善的滚屏性能</a> 了解更多.</li> <li><code>signal</code>:{{domxref("AbortSignal")}},该 <code>AbortSignal</code> 的 {{domxref("AbortController/abort()", "abort()")}} 方法被调用时,监听器会被移除。</li> <li>{{non-standard_inline}}<code> mozSystemGroup</code>: 只能在 XBL 或者是 Firefox' chrome 使用,这是个 {{jsxref("Boolean")}},表示 <code>listener </code>被添加到 system group。</li> </ul> @@ -319,7 +319,7 @@ el.addEventListener("click", () => { modifyText("four"); }, false);</pre> <p>{{ EmbedLiveSample('options用法示例', 600, 310, '', 'Web/API/EventTarget/addEventListener') }}</p> -<p>在使用<code>options</code>对象中具体的值前,最好确保用户的浏览器支持它,因为这些是历史上并非所有浏览器都支持的附加功能。你可以查看{{anch("Safely detecting option support")}}以了解更多</p> +<p>在使用<code>options</code>对象中具体的值前,最好确保用户的浏览器支持它,因为这些是历史上并非所有浏览器都支持的附加功能。你可以查看<a href="#option支持的安全检测">option支持的安全检测</a>以了解更多</p> <h2 id="备注">备注</h2> diff --git a/files/zh-cn/web/api/fetch_api/using_fetch/index.md b/files/zh-cn/web/api/fetch_api/using_fetch/index.md index 165b290a82..b2833592a6 100644 --- a/files/zh-cn/web/api/fetch_api/using_fetch/index.md +++ b/files/zh-cn/web/api/fetch_api/using_fetch/index.md @@ -36,7 +36,7 @@ fetch('http://example.com/movies.json') 当然它只是一个 HTTP 响应,而不是真的 JSON。为了获取JSON的内容,我们需要使用 {{domxref("Response.json()", "json()")}} 方法(该方法返回一个将响应 body 解析成 JSON 的 promise)。 -> **备注:** {{anch("Body")}} 还有其他相似的方法,用于获取其他类型的内容。 +> **备注:** [Body](#Body) 还有其他相似的方法,用于获取其他类型的内容。 最好使用符合[内容安全策略 (CSP)](/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy)的链接而不是使用直接指向资源地址的方式来进行 fetch 的请求。 @@ -320,7 +320,7 @@ console.log(myHeaders.get('X-Custom-Header')); // null 虽然一些操作只能在 {{domxref("Service_Worker_API","ServiceWorkers")}} 中使用,但是它提供了更方便的操作 Headers 的 API。 -如果使用了一个不合法的 HTTP Header 属性名,那么 Headers 的方法通常都抛出 TypeError 异常。如果不小心写入了一个不可写的属性({{anch("Guard", "见下方")}}),也会抛出一个 TypeError 异常。除此以外的情况,失败了并不抛出异常。例如: +如果使用了一个不合法的 HTTP Header 属性名,那么 Headers 的方法通常都抛出 TypeError 异常。如果不小心写入了一个不可写的属性([见下方](#Guard)),也会抛出一个 TypeError 异常。除此以外的情况,失败了并不抛出异常。例如: ```js const myResponse = Response.error(); diff --git a/files/zh-cn/web/api/file/index.html b/files/zh-cn/web/api/file/index.html index d87a8ed3f0..12fbc5bee5 100644 --- a/files/zh-cn/web/api/file/index.html +++ b/files/zh-cn/web/api/file/index.html @@ -13,7 +13,7 @@ translation_of: Web/API/File <p>文件(<strong><code>File</code></strong>)接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。</p> -<p>通常情况下, <code>File</code> 对象是来自用户在一个 {{HTMLElement("input")}} 元素上选择文件后返回的 {{domxref("FileList")}} 对象,也可以是来自由拖放操作生成的 {{domxref("DataTransfer")}} 对象,或者来自 {{domxref("HTMLCanvasElement")}} 上的 <code>mozGetAsFile</code>() API。在Gecko中,特权代码可以创建代表任何本地文件的File对象,而无需用户交互(有关详细信息,请参阅{{anch("注意事项")}}。</p> +<p>通常情况下, <code>File</code> 对象是来自用户在一个 {{HTMLElement("input")}} 元素上选择文件后返回的 {{domxref("FileList")}} 对象,也可以是来自由拖放操作生成的 {{domxref("DataTransfer")}} 对象,或者来自 {{domxref("HTMLCanvasElement")}} 上的 <code>mozGetAsFile</code>() API。在Gecko中,特权代码可以创建代表任何本地文件的File对象,而无需用户交互(有关详细信息,请参阅<a href="#注意事项">注意事项</a>。</p> <p><code>File</code> 对象是特殊类型的 {{domxref("Blob")}},且可以用在任意的 Blob 类型的 context 中。比如说, {{domxref("FileReader")}}, {{domxref("URL.createObjectURL()")}}, {{domxref("ImageBitmapFactories.createImageBitmap()", "createImageBitmap()")}}, 及 {{domxref("XMLHttpRequest", "", "send()")}} 都能处理 <code>Blob</code> 和<code> File</code>。</p> diff --git a/files/zh-cn/web/api/file/using_files_from_web_applications/index.html b/files/zh-cn/web/api/file/using_files_from_web_applications/index.html index 8d2a0f91aa..24f339f10b 100644 --- a/files/zh-cn/web/api/file/using_files_from_web_applications/index.html +++ b/files/zh-cn/web/api/file/using_files_from_web_applications/index.html @@ -284,7 +284,7 @@ function dragover(e) { </div> </pre> -<p>这确定我们的文件 {{ HTMLElement("input") }} 元素显示为一个可以调用文件选择器的链接(我们隐藏了文件输入元素来阻止显示用户不友好的界面)。这个在 {{ anch("Using hidden file input elements using the click() method") }}节已经说明了这种调用文件选择器的方法。</p> +<p>这确定我们的文件 {{ HTMLElement("input") }} 元素显示为一个可以调用文件选择器的链接(我们隐藏了文件输入元素来阻止显示用户不友好的界面)。这个在 <a href="#通过_click_方法使用隐藏的_file_input_元素">通过 click() 方法使用隐藏的 file input 元素</a>已经说明了这种调用文件选择器的方法。</p> <p><code>handleFiles()</code> 方法如下:</p> diff --git a/files/zh-cn/web/api/file_and_directory_entries_api/index.html b/files/zh-cn/web/api/file_and_directory_entries_api/index.html index 83bb4e222b..30046632a6 100644 --- a/files/zh-cn/web/api/file_and_directory_entries_api/index.html +++ b/files/zh-cn/web/api/file_and_directory_entries_api/index.html @@ -15,7 +15,7 @@ translation_of: Web/API/File_and_Directory_Entries_API <p>文件与目录条目 API 模拟一个 web 应用可以导航和访问的本地文件系统。你在虚拟的沙箱文件系统中可以开发一个读、写、创建文件或者目录的应用。</p> <div class="note"> -<p>因为这是一个非标准 API,它的规范目前还没有在标准的轨道上,所以要记住,并不是所有的浏览器都实现了它,而且那些实现了的浏览器可能只实现了它的一小部分。有关详细信息,请查看{{anch("浏览器兼容性")}}部分。</p> +<p>因为这是一个非标准 API,它的规范目前还没有在标准的轨道上,所以要记住,并不是所有的浏览器都实现了它,而且那些实现了的浏览器可能只实现了它的一小部分。有关详细信息,请查看<a href="#浏览器兼容性">浏览器兼容性</a>部分。</p> </div> <p>根据您希望的是异步行为还是同步行为,存在两个非常相似的 API。同步 API 可在 {{domxref("Worker")}} 中使用,并将返回所需的值。异步 API 不会阻塞和函数,API不会返回值;相反,您将需要提供一个回调函数,以便在响应到达时处理它。</p> diff --git a/files/zh-cn/web/api/file_handle_api/index.html b/files/zh-cn/web/api/file_handle_api/index.html index e955cdf0ab..5421612b10 100644 --- a/files/zh-cn/web/api/file_handle_api/index.html +++ b/files/zh-cn/web/api/file_handle_api/index.html @@ -44,7 +44,7 @@ IDBReq.onsuccess = function(){ <p>{{domxref("IDBDatabase.mozCreateFileHandle","mozCreateFileHandle()")}}接受两个参数:名称和可选类型。 这两个都是描述性的,数据库不使用。 但是,它们对于{{domxref("FileHandle")}}对象很重要,因为它可以生成{{domxref("File")}}对象,这些对象继承自己的{{domxref("File.name","name")}}和{{domxref("File.type","type")}}的值。 就是说,由于名称与任何实际文件名都不匹配,因此它可以是一个空字符串,甚至不必是唯一的。</p> <div class="note"> -<p><strong>Note:</strong> the above code only creates a "temporary file" that exists only while you hold the {{domxref("FileHandle")}} instance. If you want a file to survive a page refresh/app relaunch, you need to store the handle in a more permanent location, like the database itself. See {{Anch("File storage")}} below to learn more about this.</p> +<p><strong>Note:</strong> the above code only creates a "temporary file" that exists only while you hold the {{domxref("FileHandle")}} instance. If you want a file to survive a page refresh/app relaunch, you need to store the handle in a more permanent location, like the database itself. See <a href="#文件储存">文件储存</a> below to learn more about this.</p> </div> <h3 id="执行读写操作">执行读写操作</h3> diff --git a/files/zh-cn/web/api/filesystemdirectoryentry/index.html b/files/zh-cn/web/api/filesystemdirectoryentry/index.html index 22b7a7aeef..df09ad89c8 100644 --- a/files/zh-cn/web/api/filesystemdirectoryentry/index.html +++ b/files/zh-cn/web/api/filesystemdirectoryentry/index.html @@ -8,7 +8,7 @@ translation_of: Web/API/FileSystemDirectoryEntry <p><a href="/en-US/docs/Web/API/File_and_Directory_Entries_API">文件和目录条目 API</a> 的 <strong><code>FileSystemDirectoryEntry</code></strong> 接口表示文件系统中的目录。它提供了方法,使其能够访问和操作目录中的文件,以及访问目录中的条目。</p> <div class="note"> -<p>由于这是个非标准的 API,它的规范当前并没有在标准进程中,重要的是要记住,并不是所有浏览器都实现了他,并且实现它的浏览器可能仅仅实现了一小部分。更多细节请查看 {{anch("Browser compatibility")}} 。</p> +<p>由于这是个非标准的 API,它的规范当前并没有在标准进程中,重要的是要记住,并不是所有浏览器都实现了他,并且实现它的浏览器可能仅仅实现了一小部分。更多细节请查看 <a href="#browser_compatibility">Browser compatibility</a> 。</p> </div> <h2 id="basic_concepts" name="basic_concepts">基本概念</h2> diff --git a/files/zh-cn/web/api/filesystemdirectoryreader/index.html b/files/zh-cn/web/api/filesystemdirectoryreader/index.html index 471b5a4240..d3d71b3169 100644 --- a/files/zh-cn/web/api/filesystemdirectoryreader/index.html +++ b/files/zh-cn/web/api/filesystemdirectoryreader/index.html @@ -20,7 +20,7 @@ translation_of: Web/API/FileSystemDirectoryReader <p>The <code>FileSystemDirectoryReader</code> interface of the <a href="/en-US/docs/Web/API/File_and_Directory_Entries_API">File and Directory Entries API</a> lets you access the {{domxref("FileEntry")}}-based objects (generally {{domxref("FileSystemFileEntry")}} or {{domxref("FileSystemDirectoryEntry")}}) representing each entry in a directory.</p> <div class="note"> -<p>Because this is a non-standard API, whose specification is not currently on a standards track, it's important to keep in mind that not all browsers implement it, and those that do may implement only small portions of it. Check the {{anch("Browser compatibility")}} section for details.</p> +<p>Because this is a non-standard API, whose specification is not currently on a standards track, it's important to keep in mind that not all browsers implement it, and those that do may implement only small portions of it. Check the <a href="#browser_compatibility">Browser compatibility</a> section for details.</p> </div> <h2 id="Methods">Methods</h2> diff --git a/files/zh-cn/web/api/filesystementry/index.html b/files/zh-cn/web/api/filesystementry/index.html index 8cfed42aaf..6618309e50 100644 --- a/files/zh-cn/web/api/filesystementry/index.html +++ b/files/zh-cn/web/api/filesystementry/index.html @@ -8,7 +8,7 @@ translation_of: Web/API/FileSystemEntry <p>The <strong><code>FileSystemEntry</code></strong> interface of the File and Directory Entries API represents a single in a file system. The entry can be a file or a directory (directories are represented by the {{domxref("DirectoryEntry")}} interface). It includes methods for working with files—including copying, moving, removing, and reading files—as well as information about a file it points to—including the file name and its path from the root to the entry.</p> <div class="note"> -<p>Because this is a non-standard API, whose specification is not currently on a standards track, it's important to keep in mind that not all browsers implement it, and those that do may implement only small portions of it. Check the {{anch("Browser compatibility")}} section for details.</p> +<p>Because this is a non-standard API, whose specification is not currently on a standards track, it's important to keep in mind that not all browsers implement it, and those that do may implement only small portions of it. Check the <a href="#browser_compatibility">Browser compatibility</a> section for details.</p> </div> <h2 id="basic" name="basic">Basic concepts</h2> diff --git a/files/zh-cn/web/api/filesystemfileentry/index.html b/files/zh-cn/web/api/filesystemfileentry/index.html index de0f33c260..8b330192b1 100644 --- a/files/zh-cn/web/api/filesystemfileentry/index.html +++ b/files/zh-cn/web/api/filesystemfileentry/index.html @@ -8,7 +8,7 @@ translation_of: Web/API/FileSystemFileEntry <p><a href="/en/DOM/File_API/File_System_API" title="en/DOM/File_API/File_System_API">文件系统 API</a> 的<strong><code> FileSystemFileEntry</code></strong> 接口表示文件系统中的文件。它提供了属性,描述文件的属性,以及 {{domxref("FileSystemFileEntry.file", "file()")}} 方法,它创建了可以用于读取文件的 {{domxref("File")}} 对象。</p> <div class="note"> -<p>由于这是个非标准 API,它的规范当前并不在标准化过程中。重要的是要记住,并不是所有浏览器都实现了它,并且实现它的浏览器可能仅仅实现一小部分。点击 {{anch("Browser compatibility")}} 来查看更多细节。</p> +<p>由于这是个非标准 API,它的规范当前并不在标准化过程中。重要的是要记住,并不是所有浏览器都实现了它,并且实现它的浏览器可能仅仅实现一小部分。点击 <a href="#browser_compatibility">Browser compatibility</a> 来查看更多细节。</p> </div> <h2 id="属性" style="line-height: 30px; font-size: 2.14285714285714rem;">属性</h2> diff --git a/files/zh-cn/web/api/fullscreen_api/guide/index.html b/files/zh-cn/web/api/fullscreen_api/guide/index.html index f6b27bbb90..325cae8184 100644 --- a/files/zh-cn/web/api/fullscreen_api/guide/index.html +++ b/files/zh-cn/web/api/fullscreen_api/guide/index.html @@ -67,7 +67,7 @@ if (elem.requestFullscreen) { <p> </p> -<p>用户总是可以自行退出全屏模式;详见 {{Anch("Things your users want to know")}}。你也可以以编程方式通过调用 {{DOMxRef("Document.exitFullscreen()")}} 方法来做到这点。</p> +<p>用户总是可以自行退出全屏模式;详见 <a href="#things_your_users_want_to_know">Things your users want to know</a>。你也可以以编程方式通过调用 {{DOMxRef("Document.exitFullscreen()")}} 方法来做到这点。</p> <h2 id="其他信息">其他信息</h2> diff --git a/files/zh-cn/web/api/fullscreen_api/index.html b/files/zh-cn/web/api/fullscreen_api/index.html index 87e6fec637..b2dca17e13 100644 --- a/files/zh-cn/web/api/fullscreen_api/index.html +++ b/files/zh-cn/web/api/fullscreen_api/index.html @@ -19,7 +19,7 @@ translation_of: Web/API/Fullscreen_API <p class="summary">可以在<a href="/zh-CN/docs/Web/API/Fullscreen_API/Guide">全屏 API 指南</a>这篇文章了解更多细节。</p> <div class="note"> -<p><strong>注意:</strong>当前并不是所有的浏览器都支持该 API,大多数浏览器需要使用供应商前缀或者尚未实现该规范。下面的浏览器兼容性表 {{anch("Browser compatibility")}} 可以看到各个浏览器对此的支持(你也可以使用 <a href="https://github.com/rafrex/fscreen">Fscreen</a> 来提供跨浏览器 API 访问)。</p> +<p><strong>注意:</strong>当前并不是所有的浏览器都支持该 API,大多数浏览器需要使用供应商前缀或者尚未实现该规范。下面的浏览器兼容性表 <a href="#browser_compatibility">Browser compatibility</a> 可以看到各个浏览器对此的支持(你也可以使用 <a href="https://github.com/rafrex/fscreen">Fscreen</a> 来提供跨浏览器 API 访问)。</p> </div> <h2 id="Specification" name="Specification">接口</h2> diff --git a/files/zh-cn/web/api/gamepad/index.html b/files/zh-cn/web/api/gamepad/index.html index 05a3b1b61d..33a7a2b46d 100644 --- a/files/zh-cn/web/api/gamepad/index.html +++ b/files/zh-cn/web/api/gamepad/index.html @@ -71,14 +71,14 @@ translation_of: Web/API/Gamepad <tr> <td>{{SpecName("GamepadExtensions", "#partial-gamepad-interface", "Gamepad extensions")}}</td> <td>{{Spec2("GamepadExtensions")}}</td> - <td>Defines the {{anch("Experimental extensions to Gamepad")}}</td> + <td>Defines the <a href="#Gamepad_的实验性扩展">Experimental extensions to Gamepad</a></td> </tr> </tbody> </table> <h2 id="浏览器兼容性">浏览器兼容性</h2> -<p>{{Compat("api.Gamepad")}}</p> +<p>{{Compat}}</p> <h2 id="另请参阅">另请参阅</h2> diff --git a/files/zh-cn/web/api/gamepad_api/index.html b/files/zh-cn/web/api/gamepad_api/index.html index 114a054a0d..91c1cd80e9 100644 --- a/files/zh-cn/web/api/gamepad_api/index.html +++ b/files/zh-cn/web/api/gamepad_api/index.html @@ -74,7 +74,7 @@ translation_of: Web/API/Gamepad_API <tr> <td>{{SpecName("GamepadExtensions")}}</td> <td>{{Spec2("GamepadExtensions")}}</td> - <td>Defines the {{anch("Experimental Gamepad extensions")}}.</td> + <td>定义 <a href="#实验性_gamepad_扩展">实验性 Gamepad 扩展</a>.</td> </tr> <tr> <td>{{SpecName("Gamepad", "", "The Gamepad API specification")}}</td> diff --git a/files/zh-cn/web/api/headers/index.html b/files/zh-cn/web/api/headers/index.html index 6ee8e3e390..213545befe 100644 --- a/files/zh-cn/web/api/headers/index.html +++ b/files/zh-cn/web/api/headers/index.html @@ -10,7 +10,7 @@ translation_of: Web/API/Headers --- <p>{{ APIRef("Fetch") }}</p> -<p><a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a> 的 <strong>Headers </strong>接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用<span style="line-height: 19.0909080505371px;"> </span>{{domxref("Headers.append","append()")}} <span style="line-height: 19.0909080505371px;">方法添加 </span>之类的方法添加到此(参见 {{anch("Examples")}})。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。</p> +<p><a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a> 的 <strong>Headers </strong>接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用<span style="line-height: 19.0909080505371px;"> </span>{{domxref("Headers.append","append()")}} <span style="line-height: 19.0909080505371px;">方法添加 </span>之类的方法添加到此(参见 <a href="#示例">示例</a>)。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。</p> <p>出于安全考虑,某些头只能由用户代理控制。这些头信息包括 {{Glossary("Forbidden_header_name", "forbidden header names", 1)}} 和 {{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}。</p> @@ -67,7 +67,7 @@ translation_of: Web/API/Headers <dd>用于返回具有给定名称的 <code>Headers</code> 对象中所有值的数组; 这个方法现在已经从规范中删除了,{{domxref("Headers.get()")}} 方法现在返回所有的值而不是一个。</dd> </dl> -<h2 id="范例">范例</h2> +<h2 id="示例">示例</h2> <p>在这个小示例中, 我们将会通过Headers构造函数创建一个新的header, 先使用append()方法添加一个header, 然后通过get()方法返回这个header的值</p> diff --git a/files/zh-cn/web/api/html_drag_and_drop_api/index.html b/files/zh-cn/web/api/html_drag_and_drop_api/index.html index 98718c5e67..d844938fe5 100644 --- a/files/zh-cn/web/api/html_drag_and_drop_api/index.html +++ b/files/zh-cn/web/api/html_drag_and_drop_api/index.html @@ -96,7 +96,7 @@ translation_of: Web/API/HTML_Drag_and_Drop_API <p>{{domxref("DataTransfer")}} 和 {{domxref("DataTransferItem")}} 接口的一个主要的不同是前者使用同步的 {{domxref("DataTransfer.getData","getData()")}} 方法去得到拖拽项的数据,而后者使用异步的 {{domxref("DataTransferItem.getAsString","getAsString()")}} 方法得到拖拽项的数据。</p> -<p class="note">注意: {{domxref("DragEvent")}} 和 {{domxref("DataTransfer")}} 接口是所有桌面浏览器都支持的。但是, {{domxref("DataTransferItem")}} 和{{domxref("DataTransferItemList")}} 接口并不被所有浏览器支持。请移步 {{anch("互操作性")}} 了解更多关于拖拽行为的信息.</p> +<p class="note">注意: {{domxref("DragEvent")}} 和 {{domxref("DataTransfer")}} 接口是所有桌面浏览器都支持的。但是, {{domxref("DataTransferItem")}} 和{{domxref("DataTransferItemList")}} 接口并不被所有浏览器支持。请移步 <a href="#互操作性">互操作性</a> 了解更多关于拖拽行为的信息.</p> <h3 id="Gecko_专用接口">Gecko 专用接口</h3> diff --git a/files/zh-cn/web/api/htmliframeelement/index.html b/files/zh-cn/web/api/htmliframeelement/index.html index b88291b452..cc60d292c1 100644 --- a/files/zh-cn/web/api/htmliframeelement/index.html +++ b/files/zh-cn/web/api/htmliframeelement/index.html @@ -52,7 +52,7 @@ translation_of: Web/API/HTMLIFrameElement <h3 id="浏览器_API_方法">浏览器 API 方法</h3> -<p>为支持浏览器{{HTMLElement("iframe")}}的需求,<code>HTMLIFrameElement</code>已经扩展了一些新的方法来让{{HTMLElement("iframe")}}有更多的能力。他们并未成为规范(参见 {{anch("Browser compatibility")}})。</p> +<p>为支持浏览器{{HTMLElement("iframe")}}的需求,<code>HTMLIFrameElement</code>已经扩展了一些新的方法来让{{HTMLElement("iframe")}}有更多的能力。他们并未成为规范(参见 <a href="#browser_compatibility">Browser compatibility</a>)。</p> <h4 id="导航方法">导航方法</h4> diff --git a/files/zh-cn/web/api/htmlmediaelement/play/index.html b/files/zh-cn/web/api/htmlmediaelement/play/index.html index e492d4581e..4fd427fda3 100644 --- a/files/zh-cn/web/api/htmlmediaelement/play/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/play/index.html @@ -50,7 +50,7 @@ translation_of: Web/API/HTMLMediaElement/play <p>虽然“autoplay”这个词常常被用于描述当媒体加载完成时立即开始播放,浏览器的自动播放策略其实也应用于脚本驱动的媒体播放,包括调用 <code>play()</code>。</p> -<p>如果 {{Glossary("user agent")}} 被设置为不允许自动或脚本驱动的媒体播放,调用 <code>play()</code> 会导致返回的 promise 被立即以 <code>NotAllowedError</code> 拒绝。网页应该对这种情况做好准备。举个例子,一个网页不应该假定播放已经自动开始而直接展示相应的用户界面,而应该在返回的 promise 被解决或拒绝后再更新用户界面。更多信息参见 {{anch("示例", "示例")}}。</p> +<p>如果 {{Glossary("user agent")}} 被设置为不允许自动或脚本驱动的媒体播放,调用 <code>play()</code> 会导致返回的 promise 被立即以 <code>NotAllowedError</code> 拒绝。网页应该对这种情况做好准备。举个例子,一个网页不应该假定播放已经自动开始而直接展示相应的用户界面,而应该在返回的 promise 被解决或拒绝后再更新用户界面。更多信息参见 <a href="#示例">示例</a>。</p> <div class="blockIndicator note"> <p><strong>注意:</strong><code>play()</code> 方法可能会让用户被询问是否给予播放媒体的权限,这可能会使返回的 promise 延迟解决。你应该确保你的代码不需要即时响应。</p> diff --git a/files/zh-cn/web/api/idbcursor/direction/index.html b/files/zh-cn/web/api/idbcursor/direction/index.html index 00ca2da3fa..54de6a616d 100644 --- a/files/zh-cn/web/api/idbcursor/direction/index.html +++ b/files/zh-cn/web/api/idbcursor/direction/index.html @@ -5,7 +5,7 @@ translation_of: Web/API/IDBCursor/direction --- <p>{{ APIRef("IDBCursor") }}</p> <div> - <p> {{domxref("IDBCursor")}} 的方向属性是一个 {{domxref("DOMString")}} ,表示游标遍历的方向, (比如可以通过 {{domxref("IDBObjectStore.openCursor")}} 设置). 查看下文中 {{anch("Values")}} 章节获取可取值.</p> + <p> {{domxref("IDBCursor")}} 的方向属性是一个 {{domxref("DOMString")}} ,表示游标遍历的方向, (比如可以通过 {{domxref("IDBObjectStore.openCursor")}} 设置). 查看下文中<a href="#取值">取值</a>章节获取可取值.</p> </div> <h2 id="语法">语法</h2> <pre class="brush: js" style="font-size: 14px;">cursor.direction;</pre> diff --git a/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html b/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html index 7934d15e70..380cb097d5 100644 --- a/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html +++ b/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html @@ -50,14 +50,14 @@ translation_of: Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criter <ul> <li>持久化存储:这种数据是希望长久保留的,只有的当用户选择清除才会被删除掉(比如,<font><font>在Firefox中,您可以通过转到</font></font><em><font><font>“首选项”</font></font></em><font><font>并使用“ </font></font><em><font><font>隐私和安全”>“Cookie和站点数据”</font></font></em><font><font>下的选项,</font><font>选择删除所有存储的数据或仅删除所选来源的存储数据</font></font>)。</li> - <li>临时存储:这种数据不用保存很久,当最近一次使用时{{anch("Storage limits")}}达到限制大小就会被自动清理掉({{anch("LRU policy")}})。</li> + <li>临时存储:这种数据不用保存很久,当最近一次使用时<a href="#储存限制">储存限制</a>达到限制大小就会被自动清理掉(<a href="#lru策略">LRU策略</a>)。</li> </ul> <p><font>在Firefox中,当使用持久存储时,会向用户提供一个UI弹出窗口,提醒他们这些数据将持续存在,并询问他们是否对此感到满意。</font><font>临时数据存储不会引发任何用户提示。</font></p> <p><font>默认的是临时存储;开发人员可以选择使用</font>{{domxref("StorageManager.persist()")}}方法使用持久储存。</p> -<h2 id="数据存储在哪里?"><font><font>数据存储在哪里?</font></font></h2> +<h2 id="数据存储在哪里?">数据存储在哪里?</h2> <p><font>每种存储类型代表一个单独的存储库。</font><font>这是用户Firefox配置文件下目录的实际映射(其他浏览器可能略有不同):</font></p> diff --git a/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html b/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html index 7c7f278f51..0802eed354 100644 --- a/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html +++ b/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html @@ -119,7 +119,7 @@ request.onsuccess = function(event) { <h3 id="创建和更新数据库版本号">创建和更新数据库版本号</h3> -<p>当你创建一个新的数据库或者增加已存在的数据库的版本号(当{{ anch("打开数据库")}}时,指定一个比之前更大的版本号), <code>onupgradeneeded</code> 事件会被触发,<a href="https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent">IDBVersionChangeEvent</a> 对象会作为参数传递给绑定在 <code>request.result</code>(例如例子中的 <code>db</code>)上的 <code>onversionchange </code>事件处理函数,你应该在此创建该版本需要的对象仓库(object store)。</p> +<p>当你创建一个新的数据库或者增加已存在的数据库的版本号(当<a href="#打开数据库">打开数据库</a>时,指定一个比之前更大的版本号), <code>onupgradeneeded</code> 事件会被触发,<a href="https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeEvent">IDBVersionChangeEvent</a> 对象会作为参数传递给绑定在 <code>request.result</code>(例如例子中的 <code>db</code>)上的 <code>onversionchange </code>事件处理函数,你应该在此创建该版本需要的对象仓库(object store)。</p> <p>要更新数据库的 schema,也就是创建或者删除对象存储空间,需要实现<span style="line-height: 21px;"> </span><code style="font-size: 14px; color: rgb(51, 51, 51);">onupgradeneeded</code><span style="line-height: 21px;"> 处理程序,这个处理程序将会作为一个允许你处理对象存储空间的 </span><code style="font-size: 14px; color: rgb(51, 51, 51);">versionchange</code><span style="line-height: 21px;"> 事务的一部分被调用。</span></p> @@ -321,7 +321,7 @@ customerData.forEach(function(customer) { }; });</pre> -<p>调用 call() 方法产生的请求的 result 是被添加的数据的键。所以在该例中,它应该全等于被添加对象的 ssn 属性,因为对象仓库使用 ssn 属性作为键路径(key path)。注意,add() 方法的调用时,对象仓库中不能存在相同键的对象。如果你想修改一个已存在的条目,或者你不关心该数据是否已存在,你可以使用 put() 方法,就像下面 {{ anch("Updating an entry in the database") }} 模块所展示的。</p> +<p>调用 call() 方法产生的请求的 result 是被添加的数据的键。所以在该例中,它应该全等于被添加对象的 ssn 属性,因为对象仓库使用 ssn 属性作为键路径(key path)。注意,add() 方法的调用时,对象仓库中不能存在相同键的对象。如果你想修改一个已存在的条目,或者你不关心该数据是否已存在,你可以使用 put() 方法,就像下面 <a href="#更新数据库中的记录">更新数据库中的记录</a> 模块所展示的。</p> <h2 id="从数据库中删除数据">从数据库中删除数据</h2> diff --git a/files/zh-cn/web/api/intersection_observer_api/timing_element_visibility/index.html b/files/zh-cn/web/api/intersection_observer_api/timing_element_visibility/index.html index 37c36f7c23..643a5cc3f6 100644 --- a/files/zh-cn/web/api/intersection_observer_api/timing_element_visibility/index.html +++ b/files/zh-cn/web/api/intersection_observer_api/timing_element_visibility/index.html @@ -302,7 +302,7 @@ function startup() { <h3 id="Handling_periodic_actions">Handling periodic actions</h3> -<p>Our interval handler, <code>handleRefreshInterval()</code>, is called about once per second courtesy of the call to {{domxref("WindowOrGlobalScope.setInterval", "setInterval")}} made in the <code>startup()</code> function {{anch("Setting up", "described above")}}. Its main job is to update the timers every second and schedule a redraw to update the timers we'll be drawing within each ad.</p> +<p>Our interval handler, <code>handleRefreshInterval()</code>, is called about once per second courtesy of the call to {{domxref("WindowOrGlobalScope.setInterval", "setInterval")}} made in the <code>startup()</code> function <a href="#setting_up">described above</a>. Its main job is to update the timers every second and schedule a redraw to update the timers we'll be drawing within each ad.</p> <pre class="brush: js">function handleRefreshInterval() { let redrawList = []; @@ -333,7 +333,7 @@ function startup() { <h3 id="Updating_an_ad's_visibility_timer">Updating an ad's visibility timer</h3> -<p>Previously (see {{anch("Handling document visibility changes")}} and {{anch("Handling periodic actions")}}), we've seen that when we need to update an ad's "total visible time" counter, we call a function named <code>updateAdTimer()</code> to do so. This function takes as an input an ad's {{domxref("HTMLDivElement")}} object. Here it is:</p> +<p>Previously (see <a href="#handling_document_visibility_changes">Handling document visibility changes</a> and <a href="#handling_periodic_actions">Handling periodic actions</a>), we've seen that when we need to update an ad's "total visible time" counter, we call a function named <code>updateAdTimer()</code> to do so. This function takes as an input an ad's {{domxref("HTMLDivElement")}} object. Here it is:</p> <pre class="brush: js">function updateAdTimer(adBox) { let lastStarted = adBox.dataset.lastViewStarted; @@ -382,7 +382,7 @@ function startup() { <h3 id="Building_the_page_contents">Building the page contents</h3> -<p>The <code>buildContents()</code> function is called by the {{anch("Setting up", "startup code")}} to select and insert into the document the articles and ads to be presented:</p> +<p>The <code>buildContents()</code> function is called by the <a href="#setting_up">startup code</a> to select and insert into the document the articles and ads to be presented:</p> <pre class="brush: js">let loremIpsum = "<p>Lorem ipsum dolor sit amet, consectetur adipiscing" + " elit. Cras at sem diam. Vestibulum venenatis massa in tincidunt" + @@ -525,11 +525,11 @@ function buildContents() { <p>Finally, we set the ID of the <code><div></code> which will show the timer we'll present in the ad to show how long it's been visible, giving it the class <code>"timer"</code>. The initial text is set to "0:00", to represent the starting time of 0 minutes and 0 seconds, and it's appended to the ad.</p> -<p>If we're not replacing an existing ad, we need to append the element to the content area of the page using {{domxref("Node.appendChild", "Document.appendChild()")}}. If we're replacing an ad, it's already there, with its contents replaced with the new ad's. Then we call the {{domxref("IntersectionObserver.observe", "observe()")}} method on our Intersection Observer, <code>adObserver</code>, to start watching the ad for changes to its intersection with the viewport. From now on, any time the ad becomes 100% obscured or even a single pixel becomes visible, or the ad passes through 75% visible in one way or another, the {{anch("Handling intersection changes", "observer's callback")}} is executed.</p> +<p>If we're not replacing an existing ad, we need to append the element to the content area of the page using {{domxref("Node.appendChild", "Document.appendChild()")}}. If we're replacing an ad, it's already there, with its contents replaced with the new ad's. Then we call the {{domxref("IntersectionObserver.observe", "observe()")}} method on our Intersection Observer, <code>adObserver</code>, to start watching the ad for changes to its intersection with the viewport. From now on, any time the ad becomes 100% obscured or even a single pixel becomes visible, or the ad passes through 75% visible in one way or another, the <a href="#handling_intersection_changes">observer's callback</a> is executed.</p> <h3 id="Replacing_an_existing_ad">Replacing an existing ad</h3> -<p>Our {{anch("Handling intersection changes", "observer's callback")}} keeps an eye out for ads which become 100% obscured and have a total visible time of at least one minute. When that happens, the <code>replaceAd()</code> function is called with that ad's element as an input, so that the old ad can be replaced with a new one.</p> +<p>Our <a href="#handling_intersection_changes">observer's callback</a> keeps an eye out for ads which become 100% obscured and have a total visible time of at least one minute. When that happens, the <code>replaceAd()</code> function is called with that ad's element as an input, so that the old ad can be replaced with a new one.</p> <pre class="brush: js">function replaceAd(adBox) { let visibleTime; @@ -544,7 +544,7 @@ function buildContents() { <p><code>replaceAd()</code> begins by calling <code>updateAdTimer()</code> on the existing ad, to ensure that its timer is up-to-date. This ensures that when we read its <code>totalViewTime</code>, we see the exact final value for how long the ad was visible to the user. We then report that data; in this case, by logging it to console, but in the real world, you'd submit the information to an ad service's API or save it into a database.</p> -<p>Then we load a new ad by calling <code>{{anch("Creating an ad", "loadRandomAd()")}}</code>, specifying the ad to be replaced as an input parameter. As we saw previously, <code>loadRandomAd()</code> will replace an existing ad with content and data corresponding to a new ad, if you specify an existing ad's element as an input parameter.</p> +<p>Then we load a new ad by calling <code><a href="#creating_an_ad">loadRandomAd()</a></code>, specifying the ad to be replaced as an input parameter. As we saw previously, <code>loadRandomAd()</code> will replace an existing ad with content and data corresponding to a new ad, if you specify an existing ad's element as an input parameter.</p> <p>The new ad's element object is returned to the caller in case it's needed.</p> </div> diff --git a/files/zh-cn/web/api/keyboardevent/index.html b/files/zh-cn/web/api/keyboardevent/index.html index 1439268d80..b2a136a052 100644 --- a/files/zh-cn/web/api/keyboardevent/index.html +++ b/files/zh-cn/web/api/keyboardevent/index.html @@ -108,7 +108,7 @@ translation_of: Web/API/KeyboardEvent <div class="note"><strong>Note:</strong> This does not describe the locale of the data being entered. A user may be using one keyboard layout while typing text in a different language.</div> </dd> <dt>{{domxref("KeyboardEvent.location")}} {{Readonlyinline}}</dt> - <dd>Returns a {{jsxref("Number")}} representing the location of the key on the keyboard or other input device. A list of the constants identifying the locations is shown above in {{anch("Keyboard locations")}}.</dd> + <dd>Returns a {{jsxref("Number")}} representing the location of the key on the keyboard or other input device. A list of the constants identifying the locations is shown above in <a href="#键盘定位">Keyboard locations</a>.</dd> <dt>{{domxref("KeyboardEvent.metaKey")}} {{Readonlyinline}}</dt> <dd>Returns a {{jsxref("Boolean")}} that is <code>true</code> if the <kbd>Meta</kbd> key (on Mac keyboards, the <kbd>⌘ Command</kbd> key; on Windows keyboards, the Windows key (<kbd>⊞</kbd>)) was active when the key event was generated.</dd> <dt>{{domxref("KeyboardEvent.repeat")}} {{Readonlyinline}}</dt> diff --git a/files/zh-cn/web/api/keyboardevent/key/key_values/index.html b/files/zh-cn/web/api/keyboardevent/key/key_values/index.html index 5923333c5d..48c2359234 100644 --- a/files/zh-cn/web/api/keyboardevent/key/key_values/index.html +++ b/files/zh-cn/web/api/keyboardevent/key/key_values/index.html @@ -895,7 +895,7 @@ translation_of: Web/API/KeyboardEvent/key/Key_Values <td>A dead "combining" key; that is, a key which is used in tandem with other keys to generate accented and other modified characters. If pressed by itself, it doesn't generate a character. If you wish to identify which specific dead key was pressed (in cases where more than one exists), you can do so by examining the {{domxref("KeyboardEvent")}}'s associated {{event("compositionupdate")}} event's {{domxref("CompositionEvent.data", "data")}} property.</td> <td></td> <td></td> - <td>See {{anch("Dead keycodes for Linux")}} below</td> + <td>See <a href="#dead_keycodes_for_linux">Dead keycodes for Linux</a> below</td> <td></td> </tr> <tr> @@ -2393,7 +2393,7 @@ translation_of: Web/API/KeyboardEvent/key/Key_Values </ul> <div class="note"> -<p>Remote controls typically include keys whose values are already defined elsewhere, such as under {{anch("Multimedia keys")}} or {{anch("Audio control keys")}}. Those keys' values will match what's documented in those tables.</p> +<p>Remote controls typically include keys whose values are already defined elsewhere, such as under <a href="#multimedia_keys">Multimedia keys</a> or <a href="#audio_control_keys">Audio control keys</a>. Those keys' values will match what's documented in those tables.</p> </div> <table class="standard-table"> diff --git a/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html b/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html index c9f62fd8f4..ec05503d91 100644 --- a/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html +++ b/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html @@ -41,7 +41,7 @@ translation_of: Web/API/MediaDevices/getDisplayMedia <p>一个被解析为 {{domxref("MediaStream")}} 的 {{jsxref("Promise")}},其中包含一个视频轨道。视频轨道的内容来自用户选择的屏幕区域以及一个可选的音频轨道。</p> <div class="blockIndicator note"> -<p><strong>Note:</strong> 浏览器对音频的支持程度各不相同,既取决于是否支持,也取决于音频源. 点击 {{anch("Browser compatibility", "compatibility table")}} 来查看各个浏览器的支持性.</p> +<p><strong>Note:</strong> 浏览器对音频的支持程度各不相同,既取决于是否支持,也取决于音频源. 点击 <a href="#浏览器兼容性">浏览器兼容性</a> 来查看各个浏览器的支持性.</p> </div> <h3 id="异常">异常</h3> diff --git a/files/zh-cn/web/api/mutationobserver/mutationobserver/index.html b/files/zh-cn/web/api/mutationobserver/mutationobserver/index.html index 9846fe7648..956d9d24bd 100644 --- a/files/zh-cn/web/api/mutationobserver/mutationobserver/index.html +++ b/files/zh-cn/web/api/mutationobserver/mutationobserver/index.html @@ -22,7 +22,7 @@ translation_of: Web/API/MutationObserver/MutationObserver <dl> <dt><code><span class="hidden"> </span><span class="hidden"> </span>callback</code></dt> - <dd>一个回调函数,每当被指定的节点或子树以及配置项有Dom变动时会被调用。回调函数拥有两个参数:一个是描述所有被触发改动的 {{domxref("MutationRecord")}} 对象数组,另一个是调用该函数的<code>MutationObserver</code> 对象。参见下方的{{anch("Example", "示例")}}了解更多细节<span class="hidden"> </span><span class="hidden"> </span></dd> + <dd>一个回调函数,每当被指定的节点或子树以及配置项有Dom变动时会被调用。回调函数拥有两个参数:一个是描述所有被触发改动的 {{domxref("MutationRecord")}} 对象数组,另一个是调用该函数的<code>MutationObserver</code> 对象。参见下方的<a href="#示例">示例</a>了解更多细节<span class="hidden"> </span><span class="hidden"> </span></dd> </dl> <h3 id="返回值">返回值</h3> diff --git a/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html b/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html index fd1de837c9..bbace1dc5a 100644 --- a/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html +++ b/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html @@ -67,7 +67,7 @@ translation_of: Web/API/Navigator/registerProtocolHandler <h2 id="允许的协议标记">允许的协议标记</h2> -<p>出于安全考虑,<code>registerProtocolHandler()</code> 严格限制了允许注册的协议标记。以 <code>web+</code> 作为前缀的方式可以注册一个自定义的标记协议,至少要有5个字符的长度(包括 <code>web+</code> 前缀),而且只能使用小写的ASCII字母作为名称。例如 <code>web+burger</code> ,如下面的{{anch("示例")}}所示。</p> +<p>出于安全考虑,<code>registerProtocolHandler()</code> 严格限制了允许注册的协议标记。以 <code>web+</code> 作为前缀的方式可以注册一个自定义的标记协议,至少要有5个字符的长度(包括 <code>web+</code> 前缀),而且只能使用小写的ASCII字母作为名称。例如 <code>web+burger</code> ,如下面的<a href="#示例">示例</a>所示。</p> <p>除此之外,还可以使用下文所列的白名单中的协议标记:</p> diff --git a/files/zh-cn/web/api/node/firstchild/index.html b/files/zh-cn/web/api/node/firstchild/index.html index 9c9808c4b5..c4b7410aea 100644 --- a/files/zh-cn/web/api/node/firstchild/index.html +++ b/files/zh-cn/web/api/node/firstchild/index.html @@ -12,9 +12,9 @@ translation_of: Web/API/Node/firstChild --- <div>{{ ApiRef("DOM") }}</div> -<p><strong>Node.firstChild </strong>只读属性返回树中节点的第一个子节点,如果节点是无子节点,则返回 <code>null。</code></p> +<p><strong>Node.firstChild</strong> 只读属性返回树中节点的第一个子节点,如果节点是无子节点,则返回 <code>null。</code></p> -<h3 id="Syntax" name="Syntax">语法</h3> +<h3 id="语法">语法</h3> <pre class="syntaxbox"><em>var childNode</em> = <em>node</em>.firstChild; </pre> @@ -23,11 +23,11 @@ translation_of: Web/API/Node/firstChild <p>如果有一个子节点, childNode 是节点的第一个子节点的引用,否则为null。</p> -<h3 id="Example" name="Example">例子</h3> +<h3 id="示例">示例</h3> -<h4 id="Example" name="Example">Example 1</h4> +<h4 id="示例_1">示例 1</h4> -<p>这个例子演示了<code>firstChild</code>属性的用法以及空白符节点对该属性的使用可能造成的影响.参见{{ Anch("备注") }}部分了解Gecko DOM中关于处理空白符的更多信息.</p> +<p>这个例子演示了<code>firstChild</code>属性的用法以及空白符节点对该属性的使用可能造成的影响.参见<a href="#备注">备注</a>部分了解Gecko DOM中关于处理空白符的更多信息.</p> <pre><p id="para-01"> <span>First span</span> @@ -53,14 +53,14 @@ translation_of: Web/API/Node/firstChild </script> </pre> -<h4 id="Example" name="Example">Example 2</h4> +<h4 id="示例_2">示例 2</h4> <p><span id="result_box" lang="zh-CN"><span>假设我们有</span><span>一个HTML文档,如果该文档有一个DTD(文档类型定义),则下面的语句会弹出</span></span><code>[object DocumentType],如果该文档没有一个DTD,</code><span id="result_box" lang="zh-CN"><span>则下面的语句会弹出</span></span><code>[object HTMLHtmlElement]</code>.</p> <pre class="eval">alert(document.firstChild); </pre> -<h3 id=".E6.B3.A8.E6.84.8F" name=".E6.B3.A8.E6.84.8F">备注</h3> +<h3 id="备注">备注</h3> <p>Gecko内核的浏览器会在源代码中标签内部有空白符的地方插入一个文本结点到文档中.因此,使用诸如 <a href="/zh-CN/docs/Web/API/Node/firstChild" title="Node.firstChild 只读属性返回树中节点的第一个子节点,如果节点是无子节点,则返回 null。"><code>Node.firstChild</code></a> 和 <a href="/zh-CN/docs/Web/API/Node/previousSibling" title="返回当前节点的前一个兄弟节点,没有则返回null."><code>Node.previousSibling</code></a> 之类的方法可能会引用到一个空白符文本节点, @@ -69,7 +69,7 @@ translation_of: Web/API/Node/firstChild <p>详情请参见 <a class="new" href="/zh-CN/docs/Whitespace_in_the_DOM" rel="nofollow">DOM 中的空白符</a> 和<a class="external" href="http://www.w3.org/DOM/faq.html#emptytext" rel="noopener">W3C DOM 3 FAQ: 为什么一些文本节点是空的</a>.</p> -<h3 id="Specification" name="Specification">规范</h3> +<h3 id="规范">规范</h3> <p><a class="external" href="http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#attribute-firstChild">DOM Level 1 Core: firstChild</a></p> diff --git a/files/zh-cn/web/api/node/nodetype/index.html b/files/zh-cn/web/api/node/nodetype/index.html index f535443f96..e3e23748cd 100644 --- a/files/zh-cn/web/api/node/nodetype/index.html +++ b/files/zh-cn/web/api/node/nodetype/index.html @@ -24,7 +24,7 @@ translation_of: Web/API/Node/nodeType <pre class="syntaxbox"><em>var <var>type</var></em> = <var>node</var>.nodeType; </pre> -<p>返回一个整数,其代表的是节点类型。其所有可能的值请参考 {{anch("节点类型常量")}}.</p> +<p>返回一个整数,其代表的是节点类型。其所有可能的值请参考 <a href="#节点类型常量">节点类型常量</a>.</p> <h2 id="常量">常量</h2> diff --git a/files/zh-cn/web/api/notifications_api/using_the_notifications_api/index.html b/files/zh-cn/web/api/notifications_api/using_the_notifications_api/index.html index 49d914d0c5..ed97432158 100644 --- a/files/zh-cn/web/api/notifications_api/using_the_notifications_api/index.html +++ b/files/zh-cn/web/api/notifications_api/using_the_notifications_api/index.html @@ -17,9 +17,9 @@ original_slug: Web/API/notification/Using_Web_Notifications <p>通常,系统通知是指操作系统的标准通知机制,例如思考典型的桌面系统或移动设备如何发布通知。</p> -<p> <img src="https://mdn.mozillademos.org/files/10959/android-notification.png"> </p> +<p><img src="https://mdn.mozillademos.org/files/10959/android-notification.png"></p> -<p> <img src="https://mdn.mozillademos.org/files/10961/mac-notification.png"></p> +<p><img src="https://mdn.mozillademos.org/files/10961/mac-notification.png"></p> <p>系统通知系统当然会因平台和浏览器而异,但无需担心,通知API被编写为通用的,足以与大多数系统通知系统兼容。</p> @@ -43,7 +43,7 @@ original_slug: Web/API/notification/Using_Web_Notifications <dl> <dt><code>default</code></dt> - <dd>用户还未被询问是否授权,所以通知不会被显示。参看 {{anch("Getting permission")}} 以了解如何请求显示通知的权限。</dd> + <dd>用户还未被询问是否授权,所以通知不会被显示。参看 <a href="#获得权限">获得权限</a> 以了解如何请求显示通知的权限。</dd> <dt><code>granted</code></dt> <dd>表示之前已经询问过用户,并且用户已经授予了显示通知的权限。</dd> <dt><code>denied</code></dt> diff --git a/files/zh-cn/web/api/oscillatornode/index.html b/files/zh-cn/web/api/oscillatornode/index.html index 69275dff46..aacf53ca9b 100644 --- a/files/zh-cn/web/api/oscillatornode/index.html +++ b/files/zh-cn/web/api/oscillatornode/index.html @@ -38,7 +38,7 @@ translation_of: Web/API/OscillatorNode <dl> <dt>{{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}</dt> - <dd>创建一个OscillatorNode对象的示例, 为node{{anch("properties")}}提供可选的一个定义默认值的对象. 如果默认值可接受,你可以简单地调用{{domxref("AudioContext.createOscillator()")}}工厂方法.</dd> + <dd>创建一个OscillatorNode对象的示例, 为node<a href="#属性">属性</a>提供可选的一个定义默认值的对象. 如果默认值可接受,你可以简单地调用{{domxref("AudioContext.createOscillator()")}}工厂方法.</dd> </dl> <h2 id="属性">属性</h2> diff --git a/files/zh-cn/web/api/payment_request_api/concepts/index.html b/files/zh-cn/web/api/payment_request_api/concepts/index.html index 30e58235f5..d2addc6acd 100644 --- a/files/zh-cn/web/api/payment_request_api/concepts/index.html +++ b/files/zh-cn/web/api/payment_request_api/concepts/index.html @@ -70,7 +70,7 @@ original_slug: Web/API/支付_请求_接口/Concepts <ol> <li><strong>确保交易正确进行。</strong> 交易正确进行的条件取决于不同的支付类型和用户的支付请求;例如,如果用户选择了信用卡支付,而收款方并不支持这种方式,交易就无法正确进行。</li> - <li><strong>响应用户代理发起的对商家进行认证的请求(在处理机支持商家认证的前提下)。</strong> 详细说明请参考{{anch("Merchant validation")}}。</li> + <li><strong>响应用户代理发起的对商家进行认证的请求(在处理机支持商家认证的前提下)。</strong> 详细说明请参考<a href="#商家认证">商家认证</a>。</li> <li><strong>验证用户提交的信息有资格发起一次有效交易。</strong>这一步骤会创建并返回一个基于具体支付方式的对象,此对象包含处理交易所需要的信息。</li> </ol> diff --git a/files/zh-cn/web/api/performance_timeline/index.html b/files/zh-cn/web/api/performance_timeline/index.html index 7f7839fbe7..280d3c949d 100644 --- a/files/zh-cn/web/api/performance_timeline/index.html +++ b/files/zh-cn/web/api/performance_timeline/index.html @@ -5,7 +5,7 @@ translation_of: Web/API/Performance_Timeline --- <div>{{DefaultAPISidebar("Performance Timeline API")}}</div> -<p>The <strong>Performance Timeline</strong> API defines extensions to the {{domxref("Performance")}} interface to support client-side latency measurements within applications. The extensions provide interfaces to retrieve {{domxref("PerformanceEntry","performance entry metrics", '', 'true')}} based on specific filter criteria. The standard also includes interfaces that allow an application to define <em>{{anch("Performance_Observers","performance observer", '', 'true')}}</em> callbacks that are notified when specific performance events are added to the browser's <em>performance timeline</em>.</p> +<p>The <strong>Performance Timeline</strong> API defines extensions to the {{domxref("Performance")}} interface to support client-side latency measurements within applications. The extensions provide interfaces to retrieve {{domxref("PerformanceEntry","performance entry metrics", '', 'true')}} based on specific filter criteria. The standard also includes interfaces that allow an application to define <a href="#performance_observers"><em>performance observer</em></a> callbacks that are notified when specific performance events are added to the browser's <em>performance timeline</em>.</p> <p>This document provides an overview of the standard's interfaces. For more details about the interfaces, see the reference pages and <a href="/Web/API/Performance_Timeline/Using_Performance_Timeline">Using Performance Timeline</a>.</p> diff --git a/files/zh-cn/web/api/resource_timing_api/index.html b/files/zh-cn/web/api/resource_timing_api/index.html index 238135639e..6b02dc7532 100644 --- a/files/zh-cn/web/api/resource_timing_api/index.html +++ b/files/zh-cn/web/api/resource_timing_api/index.html @@ -5,17 +5,13 @@ translation_of: Web/API/Resource_Timing_API --- <div>{{DefaultAPISidebar("Resource Timing API")}}</div> -<div> </div> - -<div>通过<strong><code>Resource Timing API</code></strong>可以获取和分析应用资源加载的详细网络计时数据, 应用程序可以</div> +<div>通过<strong><code>Resource Timing API</code></strong>可以获取和分析应用资源加载的详细网络计时数据, 应用程序可以</div> <div>使用时间度量标准来确定加载特定资源所需要的时间, 比如 {{domxref("XMLHttpRequest")}}, {{SVGElement("SVG","SVG element")}}, 图片, 或者脚本.</div> -<div> </div> - -<p><code><strong>Resource Timing API</strong></code>为网络事件(如重定向的开始和结束事件, DNS查找的开始和结束事件, 请求开始, 响应开始和结束时间等)生成有高分辨率时间戳( {{domxref("DOMHighResTimeStamp","high-resolution timestamps", "", 1)}} )的资源加载时间线, 并提供了资源大小和资源类型.</p> +<p><code><strong>Resource Timing API</strong></code>为网络事件(如重定向的开始和结束事件, DNS查找的开始和结束事件, 请求开始, 响应开始和结束时间等)生成有高分辨率时间戳( {{domxref("DOMHighResTimeStamp","high-resolution timestamps", "", 1)}} )的资源加载时间线, 并提供了资源大小和资源类型.</p> -<p>本文档是Resource Timing API的概述. 更多详细信息, 请查阅每个接口的参考说明, <a href="/Web/API/Resource_Timing/Using_Resource_Timing">Using Resource Timing</a> 和 {{anch("See_Also","附录")}} 的参考链接. 有关资源时序处理模型的图示,请参阅 <a href="https://w3c.github.io/resource-timing/#process">resource timing phases</a> .</p> +<p>本文档是Resource Timing API的概述. 更多详细信息, 请查阅每个接口的参考说明, <a href="/Web/API/Resource_Timing/Using_Resource_Timing">Using Resource Timing</a> 和 <a href="#参见">参见</a> 的参考链接. 有关资源时序处理模型的图示,请参阅 <a href="https://w3c.github.io/resource-timing/#process">resource timing phases</a> .</p> <p class="note"><code>PerformanceResourceTiming</code> 接口只统计{{domxref("PerformanceEntry","performance entries", "", 1)}} 中 {{domxref("PerformanceEntry.entryType","entryType")}} 为"<code>resource</code>"类型的 {{domxref("PerformanceEntry")}}</p> @@ -65,7 +61,7 @@ translation_of: Web/API/Resource_Timing_API <p>To test your browser's support for these interfaces, run the <code><a href="https://mdn.github.io/dom-examples/performance-apis/perf-api-support.html">perf-api-support</a></code> application.</p> -<h2 id="附录">附录</h2> +<h2 id="参见">参见</h2> <ul> <li><a href="https://w3c.github.io/resource-timing/">Resource Timing Standard</a>; W3C Editor's Draft</li> diff --git a/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html b/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html index ed1981d7e0..a6c62b98b7 100644 --- a/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html +++ b/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html @@ -9,7 +9,7 @@ translation_of: Web/API/Resource_Timing_API/Using_the_Resource_Timing_API <p>这个接口提供了使用 {{domxref("DOMHighResTimeStamp","高精度时间戳")}} 度量的资源加载时间轴。此时间轴包含众多网络事件的时间,如重定向开始和结束时间,开始请求资源时间,DNS查询开始和结束时间,响应开始和结束时间等等。也包含了请求到的资源的大小、请求发起者的<em>类型</em>。</p> -<p>这篇文档展示了如何使用 Resource Timing 接口。获取更详细的信息或示例,请查看每个接口的文档和{{anch("See also")}}章节。</p> +<p>这篇文档展示了如何使用 Resource Timing 接口。获取更详细的信息或示例,请查看每个接口的文档和<a href="#see_also">See also</a>章节。</p> <p><a href="https://mdn.github.io/dom-examples/performance-apis/Using_the_Resource_Timing_API.html">Github</a>上有一个真实的例子,这里是它的源码 <a href="https://github.com/mdn/dom-examples/blob/master/performance-apis/Using_the_Resource_Timing_API.html">source code</a>. 欢迎提pull request和<a href="https://github.com/mdn/dom-examples/issues">报告bug</a>。</p> diff --git a/files/zh-cn/web/api/response/redirected/index.html b/files/zh-cn/web/api/response/redirected/index.html index ad43bb7596..276ec66daa 100644 --- a/files/zh-cn/web/api/response/redirected/index.html +++ b/files/zh-cn/web/api/response/redirected/index.html @@ -10,7 +10,7 @@ translation_of: Web/API/Response/redirected <p>{{domxref("Response")}} 接口中只读的 <strong><code>redirected</code></strong> 属性表明该响应是否为一个重定向的请求的结果.</p> <div class="note"> -<p>依赖 <strong><code>redirected</code></strong> 过滤重定向很容易导致虚假的重定向阻止你的内容像预期一样生效. 因此, 当调用 {{domxref("GlobalFetch.fetch", "fetch()")}} 时你应该进行过滤操作. 详见下面 {{anch("禁用重定向")}} 的例子.</p> +<p>依赖 <strong><code>redirected</code></strong> 过滤重定向很容易导致虚假的重定向阻止你的内容像预期一样生效. 因此, 当调用 {{domxref("GlobalFetch.fetch", "fetch()")}} 时你应该进行过滤操作. 详见下面 <a href="#禁用重定向">禁用重定向</a> 的例子.</p> </div> <h2 id="语法">语法</h2> @@ -25,7 +25,7 @@ translation_of: Web/API/Response/redirected <h3 id="检测重定向">检测重定向</h3> -<p>检测某个响应是否来自一个重定向的请求就如同检测 {{domxref("Response")}} 对象中这个标识一样容易. 在下面的代码中, 当 fetch 操作引起了重定向, 一段文本信息会被插入到元素中. 但需要注意的是, 这不像下面 {{anch("禁用重定向")}} 所描述的当重定向不合法时全部阻止的行为一样安全.</p> +<p>检测某个响应是否来自一个重定向的请求就如同检测 {{domxref("Response")}} 对象中这个标识一样容易. 在下面的代码中, 当 fetch 操作引起了重定向, 一段文本信息会被插入到元素中. 但需要注意的是, 这不像下面 <a href="#禁用重定向">禁用重定向</a> 所描述的当重定向不合法时全部阻止的行为一样安全.</p> <pre class="brush: js">fetch("awesome-picture.jpg").then(function(response) { let elem = document.getElementById("warning-message-box"); diff --git a/files/zh-cn/web/api/rtcsessiondescription/index.html b/files/zh-cn/web/api/rtcsessiondescription/index.html index ea3cf46721..9101239381 100644 --- a/files/zh-cn/web/api/rtcsessiondescription/index.html +++ b/files/zh-cn/web/api/rtcsessiondescription/index.html @@ -15,7 +15,7 @@ translation_of: Web/API/RTCSessionDescription <dl> <dt>{{domxref("RTCSessionDescription.type")}} {{ReadOnlyInline}}</dt> - <dd><code>{{anch("RTCSdpType")}}</code> 会话描述类型的原型枚举。</dd> + <dd><code><a href="#rtcsdptype">RTCSdpType</a></code> 会话描述类型的原型枚举。</dd> </dl> <dl> diff --git a/files/zh-cn/web/api/screen_capture_api/using_screen_capture/index.html b/files/zh-cn/web/api/screen_capture_api/using_screen_capture/index.html index e98533ac97..ee0dac5103 100644 --- a/files/zh-cn/web/api/screen_capture_api/using_screen_capture/index.html +++ b/files/zh-cn/web/api/screen_capture_api/using_screen_capture/index.html @@ -48,7 +48,7 @@ original_slug: Web/API/Screen_Capture_API/使用屏幕捕获API <p>Either way, the {{Glossary("user agent")}} responds by presenting a user interface that prompts the user to choose the screen area to share. Both of these implementations of <code>startCapture()</code> return the {{domxref("MediaStream")}} containing the captured display imagery.</p> -<p>See {{anch("Options and constraints")}}, below, for more on both how to specify the type of surface you want as well as other ways to adjust the resulting stream.</p> +<p>See <a href="#options_and_constraints">Options and constraints</a>, below, for more on both how to specify the type of surface you want as well as other ways to adjust the resulting stream.</p> <figure> <figcaption><strong><em>Example of a window allowing the user to select a display surface to capture</em></strong></figcaption> @@ -56,7 +56,7 @@ original_slug: Web/API/Screen_Capture_API/使用屏幕捕获API <p><a href="https://mdn.mozillademos.org/files/16365/Chrome-Screen-Capture-Window.png"><img alt="Screenshot of Chrome's window for picking a source surface" src="https://mdn.mozillademos.org/files/16365/Chrome-Screen-Capture-Window.png" style="height: 520px; width: 619px;"></a></p> </figure> -<p>You can then use the captured stream, <code>captureStream</code>, for anything that accepts a stream as input. The {{anch("Examples", "examples")}} below show a few ways to make use of the stream.</p> +<p>You can then use the captured stream, <code>captureStream</code>, for anything that accepts a stream as input. The <a href="#示例">examples</a> below show a few ways to make use of the stream.</p> <h3 id="Visible_vs_logical_display_surfaces">Visible vs logical display surfaces</h3> diff --git a/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html b/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html index fe30961b9f..f9604053af 100644 --- a/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html +++ b/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html @@ -61,7 +61,7 @@ original_slug: Server-sent_events/Using_server-sent_events <h2 id="服务器端如何发送事件流">服务器端如何发送事件流</h2> -<p>服务器端发送的响应内容应该使用值为<code>text/event-stream</code>的MIME类型.每个通知以文本块形式发送,并以一对换行符结尾。有关事件流的格式的详细信息,请参见{{ anch("Event stream format") }}。</p> +<p>服务器端发送的响应内容应该使用值为<code>text/event-stream</code>的MIME类型.每个通知以文本块形式发送,并以一对换行符结尾。有关事件流的格式的详细信息,请参见<a href="#事件流格式">事件流格式</a>。</p> <p>演示的{{Glossary("PHP")}}代码如下:</p> diff --git a/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html b/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html index 19bf63764f..c1915b8dd4 100644 --- a/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html +++ b/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html @@ -222,7 +222,7 @@ imgLoad('myLittleVader.jpg').then(function(response) { <code>install</code> 事件会在注册完成之后触发。<code>install</code> 事件一般是被用来填充你的浏览器的离线缓存能力。为了达成这个目的,我们使用了 Service Worker 的新的标志性的存储 API — {{domxref("cache")}} — 一个 service worker 上的全局对象,它使我们可以存储网络响应发来的资源,并且根据它们的请求来生成key。这个 API 和浏览器的标准的缓存工作原理很相似,但是是特定你的域的。它会一直持久存在,直到你告诉它不再存储,你拥有全部的控制权。</p> <div class="note"> -<p><span style="font-size: 14px;"><strong>注意</strong></span>: Cache API 并不被每个浏览器支持。(查看 {{anch("Browser support")}} 部分了解更多信息。) 如果你现在就想使用它,可以考虑采用一个 polyfill,比如 <a href="https://github.com/Polymer/topeka/blob/master/sw.js">Google topeka demo</a>,或者把你的资源存储在 <a href="/zh-CN/docs/Glossary/IndexedDB">IndexedDB</a> 中。</p> +<p><span style="font-size: 14px;"><strong>注意</strong></span>: Cache API 并不被每个浏览器支持。(查看 <a href="#browser_support">Browser support</a> 部分了解更多信息。) 如果你现在就想使用它,可以考虑采用一个 polyfill,比如 <a href="https://github.com/Polymer/topeka/blob/master/sw.js">Google topeka demo</a>,或者把你的资源存储在 <a href="/zh-CN/docs/Glossary/IndexedDB">IndexedDB</a> 中。</p> </div> <p>让我们从一个代码示例来开始这个部分——这是 <a href="https://github.com/mdn/sw-test/blob/gh-pages/sw.js#L1-L18">这是我们的 service worker 里的第一块代码</a> :</p> @@ -250,7 +250,7 @@ imgLoad('myLittleVader.jpg').then(function(response) { <li>这里我们 新增了一个 <code>install</code> 事件监听器,接着在事件上接了一个{{domxref("ExtendableEvent.waitUntil()") }} 方法——这会确保Service Worker 不会在 <code>waitUntil()</code> 里面的代码执行完毕之前安装完成。</li> <li>在 <code>waitUntil()</code> 内,我们使用了 <a href="/en-US/docs/Web/API/CacheStorage/open"><code>caches.open()</code></a> 方法来创建了一个叫做 <code>v1</code> 的新的缓存,将会是我们的站点资源缓存的第一个版本。它返回了一个创建缓存的 promise,当它 resolved 的时候,我们接着会调用在创建的缓存示例上的一个方法 <code>addAll()</code>,这个方法的参数是一个由一组相对于 origin 的 URL 组成的数组,这些 URL 就是你想缓存的资源的列表。</li> <li>如果 promise 被 rejected,安装就会失败,这个 worker 不会做任何事情。这也是可以的,因为你可以修复你的代码,在下次注册发生的时候,又可以进行尝试。</li> - <li>当安装成功完成之后, service worker 就会激活。在第一次你的 service worker 注册/激活时,这并不会有什么不同。但是当 service worker 更新 (稍后查看 {{anch("Updating your service worker") }} 部分) 的时候 ,就不太一样了。</li> + <li>当安装成功完成之后, service worker 就会激活。在第一次你的 service worker 注册/激活时,这并不会有什么不同。但是当 service worker 更新 (稍后查看 <a href="#更新你的_service_worker">更新你的 service worker</a> 部分) 的时候 ,就不太一样了。</li> </ol> <div class="note"> @@ -377,7 +377,7 @@ event.request.body</pre> <p>因为只有新图片会失败,我们已经选择了回退的图片,一切都依赖我们之前看到的 <code>install</code> 事件侦听器中的安装过程。</p> -<p><strong>更新你的 service worker</strong></p> +<h2 id="更新你的_service_worker">更新你的 service worker</h2> <p>如果你的 service worker 已经被安装,但是刷新页面时有一个新版本的可用,新版的 service worker 会在后台安装,但是还没激活。当不再有任何已加载的页面在使用旧版的 service worker 的时候,新版本才会激活。一旦再也没有更多的这样已加载的页面,新的 service worker 就会被激活。</p> diff --git a/files/zh-cn/web/api/settimeout/index.html b/files/zh-cn/web/api/settimeout/index.html index 1499eccade..77a470e485 100644 --- a/files/zh-cn/web/api/settimeout/index.html +++ b/files/zh-cn/web/api/settimeout/index.html @@ -27,13 +27,13 @@ var<em> </em>timeoutID = <em>scope</em>.setTimeout(<em>code</em>[, <em>delay</em <dt><code>code</code></dt> <dd>这是一个可选语法,你可以使用字符串而不是{{jsxref("function")}} ,在<code>delay</code>毫秒之后编译和执行字符串 (使用该语法是<strong>不推荐的,</strong> 原因和使用 {{jsxref("Global_Objects/eval", "eval()")}}一样,有安全风险)。</dd> <dt><code>delay</code> {{optional_inline}}</dt> - <dd>延迟的毫秒数 (一秒等于1000毫秒),函数的调用会在该延迟之后发生。如果省略该参数,delay取默认值0,意味着“马上”执行,或者尽快执行。不管是哪种情况,实际的延迟时间可能会比期待的(delay毫秒数) 值长,原因请查看{{anch("实际延时比设定值更久的原因:最小延迟时间")}}。</dd> + <dd>延迟的毫秒数 (一秒等于1000毫秒),函数的调用会在该延迟之后发生。如果省略该参数,delay取默认值0,意味着“马上”执行,或者尽快执行。不管是哪种情况,实际的延迟时间可能会比期待的(delay毫秒数) 值长,原因请查看<a href="#实际延时比设定值更久的原因:最小延迟时间">实际延时比设定值更久的原因:最小延迟时间</a>。</dd> <dt><code>arg1, ..., argN</code> {{optional_inline}}</dt> <dd>附加参数,一旦定时器到期,它们会作为参数传递给{{jsxref("function")}} </dd> </dl> <div class="note"> -<p><strong>备注</strong>:需要注意的是,IE9 及更早的 IE 浏览器不支持向回调函数传递额外参数(第一种语法)。如果你想要在IE中达到同样的功能,你必须使用一种兼容代码 (查看 {{anch("兼容旧环境(polyfill)")}} 一段).</p> +<p><strong>备注</strong>:需要注意的是,IE9 及更早的 IE 浏览器不支持向回调函数传递额外参数(第一种语法)。如果你想要在IE中达到同样的功能,你必须使用一种兼容代码 (查看 <a href="#兼容旧环境(polyfill)">兼容旧环境(polyfill)</a> 一段).</p> </div> <h3 id="Examples" name="Examples">返回值</h3> diff --git a/files/zh-cn/web/api/web_audio_api/index.html b/files/zh-cn/web/api/web_audio_api/index.html index f7178d006c..75ce74566d 100644 --- a/files/zh-cn/web/api/web_audio_api/index.html +++ b/files/zh-cn/web/api/web_audio_api/index.html @@ -144,7 +144,7 @@ translation_of: Web/API/Web_Audio_API <p>可以编写JavaScript代码来处理音频数据。当然,这需要用到下面的接口和事件。</p> <div class="note"> -<p><strong>注意:</strong>这些功能在Web Audio API的2014年8月9日版本中已经标记为不推荐的,这些功能很快会被{{ anch("Audio_Workers") }}代替。</p> +<p><strong>注意:</strong>这些功能在Web Audio API的2014年8月9日版本中已经标记为不推荐的,这些功能很快会被<a href="#audio_workers">Audio_Workers</a>代替。</p> </div> <dl> diff --git a/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html b/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html index 107266e073..2704cf845d 100644 --- a/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html +++ b/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html @@ -92,7 +92,7 @@ second.onchange = function() { </div> <div class="note"> -<p><strong>注意:</strong> 当一个消息在主线程和worker之间传递时,它被复制或者转移了,而不是共享。请参阅{{anch("Transferring data to and from workers further details", "Transferring data to and from workers: further details")}} 获取更详尽的解释。</p> +<p><strong>注意:</strong> 当一个消息在主线程和worker之间传递时,它被复制或者转移了,而不是共享。请参阅<a href="#worker中数据的接收与发送:详细介绍">worker中数据的接收与发送:详细介绍</a> 获取更详尽的解释。</p> </div> <h3 id="终止worker">终止worker</h3> diff --git a/files/zh-cn/web/api/webgl_api/data/index.html b/files/zh-cn/web/api/webgl_api/data/index.html index ded07d6e36..a8570b2e68 100644 --- a/files/zh-cn/web/api/webgl_api/data/index.html +++ b/files/zh-cn/web/api/webgl_api/data/index.html @@ -27,7 +27,7 @@ translation_of: Web/API/WebGL_API/Data <h2 id="GLSL_变量">GLSL 变量</h2> -<p>GLSL中有三种类型的“变量”或者说数据存储类型。每一种类型都有特定的目标和使用方法:: <strong>{{anch("Attributes", "attributes")}}</strong>、<strong>{{anch("Varyings", "varyings")}}</strong>和<strong>{{anch("Uniforms", "uniforms")}}</strong>.</p> +<p>GLSL中有三种类型的“变量”或者说数据存储类型。每一种类型都有特定的目标和使用方法:: <strong><a href="#attributes">attributes</a></strong>、<strong><a href="#varyings">varyings</a></strong>和<strong><a href="#uniforms">uniforms</a></strong>.</p> <h3 id="Attributes">Attributes</h3> diff --git a/files/zh-cn/web/api/webgl_api/index.html b/files/zh-cn/web/api/webgl_api/index.html index c890e01f68..492c7731b3 100644 --- a/files/zh-cn/web/api/webgl_api/index.html +++ b/files/zh-cn/web/api/webgl_api/index.html @@ -19,7 +19,7 @@ translation_of: Web/API/WebGL_API <p>目前支持 WebGL 的浏览器有:<a href="https://developer.mozilla.org/zh-CN/Firefox" title="Firefox 4 for developers">Firefox</a> 4+, <a href="http://www.google.com/chrome/" title="http://www.google.com/chrome/">Google Chrome</a> 9+, <a href="http://www.opera.com/" title="http://www.opera.com/">Opera</a> 12+, <a href="http://www.apple.com/safari/" title="http://www.apple.com/fr/safari/">Safari </a>5.1+, <a href="http://windows.microsoft.com/en-us/internet-explorer/browser-ie">Internet Explorer</a> 11+和<a href="https://www.microsoft.com/en-us/edge">Microsoft Edge</a> build 10240+;然而, WebGL一些特性也需要用户的硬件设备支持。</p> -<p>{{anch("WebGL 2")}}<font><font> API引入了对大部分的OpenGL ES 3.0功能集的支持; </font><font>它是通过</font></font>{{domxref("WebGL2RenderingContext")}}<font><font>界面</font><font>提供的</font><font>。</font></font></p> +<p><a href="#webgl_2">WebGL 2</a><font><font> API引入了对大部分的OpenGL ES 3.0功能集的支持; </font><font>它是通过</font></font>{{domxref("WebGL2RenderingContext")}}<font><font>界面</font><font>提供的</font><font>。</font></font></p> <p> {{HTMLElement("canvas")}} 元素也被 <a href="/zh-CN/docs/Web/API/Canvas_API">Canvas API</a> 用于在网页上进行2D图形处理。</p> diff --git a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html index 20804af827..a4d70b7095 100644 --- a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html +++ b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html @@ -421,7 +421,7 @@ gl_Position = vec4(transformedPosition.xyz, w); <p><img alt="Filling the W component and creating some projection." src="https://mdn.mozillademos.org/files/11379/part4.png" style="height: 531px; width: 800px;"></p> -<p>看到那个深蓝色的小三角形吗?那是添加到对象上的另一个面,因为形状的旋转导致了该角延伸到裁剪空间之外,从而导致该角被裁剪掉。有关如何使用更复杂的矩阵来帮助控制和防止裁剪的介绍,请参照下面的 {{anch("Perspective matrix")}}。</p> +<p>看到那个深蓝色的小三角形吗?那是添加到对象上的另一个面,因为形状的旋转导致了该角延伸到裁剪空间之外,从而导致该角被裁剪掉。有关如何使用更复杂的矩阵来帮助控制和防止裁剪的介绍,请参照下面的 <a href="#perspective_matrix">Perspective matrix</a>。</p> <h3 id="练习_4">练习</h3> @@ -506,7 +506,7 @@ var w = (2 * 0) + (3 * 0) + (4 * scaleFactor) + (1 * scaleFactor) }; </pre> -<p>尽管结果相同,但重要的步骤还是在顶点着色器中。与其直接修改顶点,不如将其乘以一个附加的 <strong>{{anch("Projection matrix", "projection matrix")}}</strong>,该矩阵将3D点投影到2D绘图表面上:</p> +<p>尽管结果相同,但重要的步骤还是在顶点着色器中。与其直接修改顶点,不如将其乘以一个附加的 <strong><a href="#projection_matrix">projection matrix</a></strong>,该矩阵将3D点投影到2D绘图表面上:</p> <pre class="brush: glsl">// 确保以相反的顺序读取转换矩阵 gl_Position = projection * model * vec4(position, 1.0); diff --git a/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html b/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html index f8f8ab33aa..50a7f2de6e 100644 --- a/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html +++ b/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html @@ -341,27 +341,27 @@ function invite(evt) { <dl> <dd> - <p>当需要你通过信令服务器将一个ICE候选发送给另一个对等端时,本地ICE层将会调用你的 {{event("icecandidate")}} 事件处理程序。有关更多信息,请参阅{{anch("Sending ICE candidates")}} 以查看此示例的代码。</p> + <p>当需要你通过信令服务器将一个ICE候选发送给另一个对等端时,本地ICE层将会调用你的 {{event("icecandidate")}} 事件处理程序。有关更多信息,请参阅<a href="#交换_ice_候选">交换 ICE 候选</a> 以查看此示例的代码。</p> </dd> <dt>{{domxref("RTCPeerConnection.ontrack")}}</dt> - <dd>当向连接中添加磁道时,{{event("track")}} 事件的此处理程序由本地WebRTC层调用。例如,可以将传入媒体连接到元素以显示它。详见 {{anch("Receiving new streams")}} 。</dd> + <dd>当向连接中添加磁道时,{{event("track")}} 事件的此处理程序由本地WebRTC层调用。例如,可以将传入媒体连接到元素以显示它。详见<a href="#接收新的流数据">接收新的流数据</a> 。</dd> <dt>{{domxref("RTCPeerConnection.onnegotiationneeded")}}</dt> - <dd>每当WebRTC基础结构需要你重新启动会话协商过程时,都会调用此函数。它的工作是创建和发送一个请求,给被叫方,要求它与我们联系。参见{{anch("Starting negotiation")}} 了解我们如何处理这一问题。</dd> + <dd>每当WebRTC基础结构需要你重新启动会话协商过程时,都会调用此函数。它的工作是创建和发送一个请求,给被叫方,要求它与我们联系。参见<a href="#开始协商">开始协商</a>了解我们如何处理这一问题。</dd> <dt>{{domxref("RTCPeerConnection.onremovetrack")}}</dt> - <dd>调用与 <code>ontrack</code>相对应的对象来处理 {{event("removetrack")}} 事件;当远程对等端从正在发送的媒体中删除磁道时,它将发送到<code>RTCPeerConnection</code> 。参见 {{anch("Handling the removal of tracks")}} 。</dd> + <dd>调用与 <code>ontrack</code>相对应的对象来处理 {{event("removetrack")}} 事件;当远程对等端从正在发送的媒体中删除磁道时,它将发送到<code>RTCPeerConnection</code>。参见 <a href="#处理流的移除">处理流的移除</a> 。</dd> <dt>{{domxref("RTCPeerConnection.oniceconnectionstatechange")}}</dt> - <dd>ICE层发送{{event("iceconnectionstatechange")}} 事件,让你了解ICE连接状态的更改。这可以帮助你了解连接何时失败或丢失。我们将在下面的{{anch("ICE connection state")}} 中查看此示例的代码。</dd> + <dd>ICE层发送{{event("iceconnectionstatechange")}} 事件,让你了解ICE连接状态的更改。这可以帮助你了解连接何时失败或丢失。我们将在下面的<a href="#ice_连接状态">ICE 连接状态</a>中查看此示例的代码。</dd> <dt>{{domxref("RTCPeerConnection.onicegatheringstatechange")}}</dt> - <dd>当ICE代理收集候选对象的过程从一个状态切换到另一个状态(例如开始收集候选对象或完成协商)时,ICE层将向你发送事件(“ICegulatingStateChange”)事件。见下文 {{anch("ICE gathering state")}}。</dd> + <dd>当ICE代理收集候选对象的过程从一个状态切换到另一个状态(例如开始收集候选对象或完成协商)时,ICE层将向你发送事件(“ICegulatingStateChange”)事件。见下文 <a href="#ice_收集状态">ICE 收集状态</a>。</dd> <dt>{{domxref("RTCPeerConnection.onsignalingstatechange")}}</dt> <dd> - <p>当信令进程的状态更改时(或如果到信令服务器的连接更改时),WebRTC架构将向你发送 {{event("signalingstatechange")}} 消息。参见{{anch("Signaling state")}} 查看我们的代码。</p> + <p>当信令进程的状态更改时(或如果到信令服务器的连接更改时),WebRTC架构将向你发送 {{event("signalingstatechange")}} 消息。参见<a href="#ice_信令状态">ICE 信令状态</a>查看我们的代码。</p> </dd> </dl> <h4 id="开始协商">开始协商</h4> -<p>一旦调用者创建了其 {{domxref("RTCPeerConnection")}} ,创建了媒体流,并将其磁道添加到连接中,如 {{anch("Starting a call")}} 所示,浏览器将向{{domxref("RTCPeerConnection")}} 传递一个 {{event("negotiationneeded")}} 事件,以指示它已准备好开始与其他对等方协商。以下是我们处理 {{event("negotiationneeded")}} 事件的代码:</p> +<p>一旦调用者创建了其 {{domxref("RTCPeerConnection")}} ,创建了媒体流,并将其磁道添加到连接中,如 <a href="#开始通话的交互">开始通话的交互</a> 所示,浏览器将向 {{domxref("RTCPeerConnection")}} 传递一个 {{event("negotiationneeded")}} 事件,以指示它已准备好开始与其他对等方协商。以下是我们处理 {{event("negotiationneeded")}} 事件的代码:</p> <pre class="brush: js">function handleNegotiationNeededEvent() { myPeerConnection.createOffer().then(function(offer) { @@ -447,13 +447,13 @@ function invite(evt) { .catch(handleGetUserMediaError); }</code></pre> -<p class="brush: js">此代码与我们在 {{anch("Starting a call")}} 中在 <code>invite()</code> 函数中所做的非常相似。它首先使用 <code>createPeerConnection()</code> 函数创建和配置{{domxref("RTCPeerConnection")}} 。然后,它从收到的 <code>"video-offer"</code> 消息中获取SDP请求,并使用它创建一个表示调用方会话描述的新 {{domxref("RTCSessionDescription")}} 对象。</p> +<p class="brush: js">此代码与我们在<a href="#开始通话的交互">开始通话的交互</a>中在 <code>invite()</code> 函数中所做的非常相似。它首先使用 <code>createPeerConnection()</code> 函数创建和配置{{domxref("RTCPeerConnection")}} 。然后,它从收到的 <code>"video-offer"</code> 消息中获取SDP请求,并使用它创建一个表示调用方会话描述的新 {{domxref("RTCSessionDescription")}} 对象。</p> <p class="brush: js">然后将该会话描述传递到 {{domxref("RTCPeerConnection.setRemoteDescription", "myPeerConnection.setRemoteDescription()")}}。这将把接收到的请求建立为连接的远程(调用方)端的描述。如果成功,promise成功处理程序(在then()子句中)将使用 {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}},将磁道添加到连接,以此类推,如前面在 <code>invite()</code>中看到的那样。</p> <p class="brush: js">一旦使用 {{domxref("RTCPeerConnection.createAnswer", "myPeerConnection.createAnswer()")}} 创建了应答,通过调用{{domxref("RTCPeerConnection.setLocalDescription", "myPeerConnection.setLocalDescription()")}} 连接本地端的描述被设置为应答的SDP,则通过信令服务器将应答发送给调用者,让他们知道应答是什么。</p> -<p>捕捉到的任何错误都会被传递给 <code>handleGetUserMediaError()</code>,详见 {{anch("Handling getUserMedia() errors")}} 。</p> +<p>捕捉到的任何错误都会被传递给 <code>handleGetUserMediaError()</code>,详见 <a href="#处理_getusermedia()_错误">处理 getUserMedia() 错误</a> 。</p> <div class="note"> <p>注意:与调用者的情况一样,一旦 <code>setLocalDescription()</code>实现处理程序运行完毕,浏览器将开始触发被调用者必须处理的{{event("icecandidate")}} 事件,每个需要传输到远程对等方的候选事件对应一个事件。</p> @@ -475,7 +475,7 @@ function invite(evt) { } }</pre> -<p>这将构建一个包含候选对象的对象,然后使用前面在 {{anch("Sending messages to the signaling server")}} 中描述的<code>sendToServer()</code> 函数将其发送给另一个对等方。消息属性为:</p> +<p>这将构建一个包含候选对象的对象,然后使用前面在 <a href="#向信令服务器发送信息">向信令服务器发送信息</a> 中描述的<code>sendToServer()</code> 函数将其发送给另一个对等方。消息属性为:</p> <p><strong><span style='background-color: rgba(220, 220, 220, 0.5); font-family: consolas,"Liberation Mono",courier,monospace; font-size: 1rem; font-style: inherit; font-weight: inherit; letter-spacing: -0.00278rem;'>type</span></strong></p> @@ -546,9 +546,9 @@ function invite(evt) { } }</code></pre> -<p>此代码从<code>"received_video"</code> {{HTMLElement("video")}}元素的{{htmlattrxref("srcObject", "video")}} 属性获取传入视频 {{domxref("MediaStream.getTracks", "getTracks()")}} 方法获取流的磁道数组。</p> +<p>此代码从<code>"received_video"</code> {{HTMLElement("video")}}元素的 {{htmlattrxref("srcObject", "video")}} 属性获取传入视频 {{domxref("MediaStream.getTracks", "getTracks()")}} 方法获取流的磁道数组。</p> -<p>如果数组的长度为零,意味着流中没有剩余的磁道,则通过调用 <code>closeVideoCall()</code>结束调用。这样就可以将我们的应用程序恢复到可以启动或接收另一个呼叫的状态。请参阅 {{anch("Ending the call")}} 了解 <code>closeVideoCall()</code> 的工作原理。</p> +<p>如果数组的长度为零,意味着流中没有剩余的磁道,则通过调用 <code>closeVideoCall()</code>结束调用。这样就可以将我们的应用程序恢复到可以启动或接收另一个呼叫的状态。请参阅 <a href="#结束通话">结束通话</a> 了解 <code>closeVideoCall()</code> 的工作原理。</p> <h4 id="结束通话">结束通话</h4> diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html index c5fefb2336..16ca1dcc5c 100644 --- a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html @@ -16,9 +16,9 @@ translation_of: Web/API/WebSockets_API/Writing_WebSocket_client_applications <h2 id="创建_WebSocket_对象">创建 WebSocket 对象</h2> -<p>为了使用 WebSocket 协议通信,你需要创建一个 <a href="/en/WebSockets/WebSockets_reference/WebSocket" title="en/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></a> 对象;这将会自动地尝试建立与服务器的连接。</p> +<p>为了使用 WebSocket 协议通信,你需要创建一个 <a href="/en/WebSockets/WebSockets_reference/WebSocket" title="en/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></a> 对象;这将会自动地尝试建立与服务器的连接。</p> -<p>WebSocket 构造函数接受一个必要参数和一个可选参数:</p> +<p>WebSocket 构造函数接受一个必要参数和一个可选参数:</p> <pre class="syntaxbox">WebSocket WebSocket( in DOMString url, @@ -118,7 +118,7 @@ function sendText() { <h3 id="接受与解析_JSON_对象">接受与解析 JSON 对象</h3> -<p>考虑在 {{ anch("Using JSON to transmit objects") }}中提到的聊天应用客户端。客户端会收到各种类型的数据包,比如:</p> +<p>考虑在 <a href="#使用_json_发送对象">使用 JSON 发送对象</a>中提到的聊天应用客户端。客户端会收到各种类型的数据包,比如:</p> <ul> <li>登陆握手</li> diff --git a/files/zh-cn/web/api/webvtt_api/index.html b/files/zh-cn/web/api/webvtt_api/index.html index a2e9979dce..9316bee752 100644 --- a/files/zh-cn/web/api/webvtt_api/index.html +++ b/files/zh-cn/web/api/webvtt_api/index.html @@ -231,7 +231,7 @@ Transcrit par Célestes™ <pre class="brush: css">::cue(#\31) { color: lime; } ::cue(#crédit\ de\ transcription) { color: red; }</pre> -<p>Positioning of text tracks is also supported, by including positioning information after the timings in a cue, as seen below (see {{anch("Cue settings")}} for more information):</p> +<p>Positioning of text tracks is also supported, by including positioning information after the timings in a cue, as seen below (see <a href="#cue_settings">Cue settings</a> for more information):</p> <pre>WEBVTT diff --git a/files/zh-cn/web/api/webxr_device_api/index.html b/files/zh-cn/web/api/webxr_device_api/index.html index e6a3bd823c..9e07a8b007 100644 --- a/files/zh-cn/web/api/webxr_device_api/index.html +++ b/files/zh-cn/web/api/webxr_device_api/index.html @@ -86,7 +86,7 @@ translation_of: Web/API/WebXR_Device_API <ul> <li>在用户事件句柄总或者在用户启动 <a href="/en-US/docs/Web/Progressive_web_apps">web 应用</a>中执行的 <code>requestSession()</code> 调用;</li> <li>文档是可信赖的,其中的内容是可靠的、及时更新的以及有着重点;</li> - <li>用户有明确的使用沉浸式 VR 模式的意图,后文中 {{anch("User intent")}} 一节将有详细描述。</li> + <li>用户有明确的使用沉浸式 VR 模式的意图,后文中,<a href="#用户意图">用户意图</a>一节将有详细描述。</li> </ul> <p>如果上述三点均满足, <code>requestSession()</code> 返回的 Promise 将被 resolve,新的 {{domxref("XRSession")}} 对象被传入完成时的处理函数中。如果有不满足的情况,将会根据具体场景抛出异常,比如当没有权限进入沉浸式模式情况下, <code>SecurityError</code> 将被抛出。</p> @@ -101,7 +101,7 @@ translation_of: Web/API/WebXR_Device_API <li>如果 <code>requestSession()</code> 调用的发起既不来自用户事件中,也不是在 Web 应用启动时,那该请求将会被驳回,Promise 放返回 <code>false</code>;</li> <li>如果发起请求的文档不属于对应的脚本,该请求将被驳回;</li> <li>如果发起请求的文档不可信任,该请求会被驳回且 Promise 返回 <code>false</code>。一个可信任文档指的是该文档是活跃的、负责任的且有重点的;</li> - <li>如果设备无法明确用户开启内联模式的意图,该请求将会被驳回。对{{anch("用户意图", "用户的目的")}}的理解可以是隐性或者显性的。</li> + <li>如果设备无法明确用户开启内联模式的意图,该请求将会被驳回。对<a href="#用户意图">用户的目的</a>的理解可以是隐性或者显性的。</li> </ul> <div class="blockIndicator note"> diff --git a/files/zh-cn/web/api/window/devicepixelratio/index.html b/files/zh-cn/web/api/window/devicepixelratio/index.html index aba68dcdf8..0947108a83 100644 --- a/files/zh-cn/web/api/window/devicepixelratio/index.html +++ b/files/zh-cn/web/api/window/devicepixelratio/index.html @@ -9,7 +9,7 @@ translation_of: Web/API/Window/devicePixelRatio <p>当处理标准显示器与HiDPI或Retina显示器之间的差异时,这很有用,后者使用更多的屏幕像素绘制相同的对象,从而获得更清晰的图像。</p> -<p>您可以使用{{domxref("Window.matchMedia", "window.matchMedia()")}} 检查<code>devicePixelRatio</code>的值是否发生更改(例如,如果用户将窗口拖动到带有 不同的像素密度)。 请参阅{{anch("Monitoring screen resolution or zoom level changes", "下面的例子")}}.。</p> +<p>您可以使用{{domxref("Window.matchMedia", "window.matchMedia()")}} 检查<code>devicePixelRatio</code>的值是否发生更改(例如,如果用户将窗口拖动到带有 不同的像素密度)。 请参阅<a href="#监视屏幕分辨率或缩放级别的更改">下面的例子</a>。</p> <h2 id="Summary" name="Summary">语法</h2> diff --git a/files/zh-cn/web/api/xmlhttprequest/responsetype/index.html b/files/zh-cn/web/api/xmlhttprequest/responsetype/index.html index 7201946aae..c171e12d92 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responsetype/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responsetype/index.html @@ -57,7 +57,7 @@ browser-compat: api.XMLHttpRequest.responseType <dl> <dt><code>InvalidAccessError</code></dt> - <dd>试图更改 <code>XMLHttpRequest</code> 的 <code>responseType</code>,该值处于同步模式但不在 {{DOMxRef("Worker")}} 中。有关其他详细信息,请参阅下面的 {{anch("Synchronous_XHR_restrictions", "同步 XHR 限制")}}。</dd> + <dd>试图更改 <code>XMLHttpRequest</code> 的 <code>responseType</code>,该值处于同步模式但不在 {{DOMxRef("Worker")}} 中。有关其他详细信息,请参阅下面的 <a href="#synchronous_xhr_restrictions">同步 XHR 限制</a>。</dd> </dl> <h2 id="Usage_notes">使用说明</h2> |