diff --git a/files/zh-cn/.markdownlint.jsonc b/files/zh-cn/.markdownlint.jsonc index 2ae0cc6dff75e8..90b36b52b2b091 100644 --- a/files/zh-cn/.markdownlint.jsonc +++ b/files/zh-cn/.markdownlint.jsonc @@ -1,5 +1,8 @@ { "extends": "../../.markdownlint.jsonc", + "no-trailing-punctuation": { + "punctuation": ".,;:。," + }, "search-replace": { "rules": [ { diff --git a/files/zh-cn/glossary/grid/index.md b/files/zh-cn/glossary/grid/index.md index 28bd3bc765dcb8..f67e127aaf9356 100644 --- a/files/zh-cn/glossary/grid/index.md +++ b/files/zh-cn/glossary/grid/index.md @@ -11,9 +11,7 @@ slug: Glossary/Grid 如果开发者将内容放置在显式网格之外,或者依赖自动布局的话,网格法 (grid algorithm) 将需要创建额外的 row 或者 column、 {{glossary("grid tracks", "tracks")}} 来包含显示网格之外的内容 {{glossary("grid item", "grid items")}},为此将在隐式网格 (implicit grid) 中创建额外的轨道 (tracks)。_当内容添加到了已定义的 tracks 之外的时候,隐式网格 (implicit grid) 会被自动创建。_ -下面的例子创建了一个有两行三列的显式网格*。*由于超过显式网格可容纳的六个条目,_此网格中的第三行将是一个隐式网格行轨道 (implicit grid_ row track) - -_(注:在容器 div 上用 row 和 column 定义的网格总数,等于 行数乘以列数 个。比如一个容器 div 定义了 2 行 \* 3 列 = 6 个网格,这 6 个就是显式网格,但是假如里面有 8 个 子 div,多出来那 2 个就叫做隐式网格。)_ +下面的例子创建了一个有两行三列的显式网格。由于超过显式网格可容纳的六个条目,此网格中的第三行将是一个*隐式网格*行轨道(implicit grid row track)。 ## 示例 diff --git a/files/zh-cn/learn/css/first_steps/styling_a_biography_page/index.md b/files/zh-cn/learn/css/first_steps/styling_a_biography_page/index.md index 405e50dd3a625f..f2be55585bac50 100644 --- a/files/zh-cn/learn/css/first_steps/styling_a_biography_page/index.md +++ b/files/zh-cn/learn/css/first_steps/styling_a_biography_page/index.md @@ -39,7 +39,7 @@ slug: Learn/CSS/First_steps/Styling_a_biography_page > **备注:** 如果遇到困难,你可以向我求助——参见本页下面的[测评或请求帮助](#测评或请求帮助)部分。 -**让我们来学一些 CSS 样式** +### 让我们来学一些 CSS 样式 接下来的实例是一个个人主页,我们用 CSS 设定它的样式。以下是我用到的一些 CSS 属性,通过这些链接,你可以打开相应的 MDN 页面了解更多。 @@ -83,7 +83,7 @@ slug: Learn/CSS/First_steps/Styling_a_biography_page - 你希望测试的例子的在网络编辑器上的链接。这是很好的做法,因为如果不让帮助你的看到你的程序,他们就很难帮助你解决程序的问题。 - 你的网页的测评页面链接,这样我们就可以找到你所求助的问题。 -**接下来是什么?** +## 接下来是什么? 恭喜你完成了第一个模块的学习。现在你应该对 CSS 有了一个大致的了解 并且能够了解在样式表中发生的大多数事情。在下一个模块[CSS 构建](/zh-CN/docs/Learn/CSS/Building_blocks)中,我们将对一些关键区域进行深入的学习。 diff --git a/files/zh-cn/learn/html/multimedia_and_embedding/video_and_audio_content/index.md b/files/zh-cn/learn/html/multimedia_and_embedding/video_and_audio_content/index.md index 91fe2050eb8eec..c0cd7e11452be3 100644 --- a/files/zh-cn/learn/html/multimedia_and_embedding/video_and_audio_content/index.md +++ b/files/zh-cn/learn/html/multimedia_and_embedding/video_and_audio_content/index.md @@ -282,7 +282,7 @@ WEBVTT > **备注:** 文本轨道会使你的网站更容易被搜索引擎抓取到({{glossary("SEO")}}),由于搜索引擎的文本抓取能力非常强大,使用文本轨道甚至可以让搜索引擎通过视频的内容直接链接。 -## 实践学习:在你的网站上嵌入你自己的视频或音频。 +## 实践学习:在你的网站上嵌入你自己的视频或音频 在这个实践学习当中,我们希望你能够走出去,并且记录一些你自己的视频或者音频 — 如今,大多数手机都能够非常方便的记录视频或者音频,并且你可以将他们上传到你的电脑上面,你可以使用这些功能来记录你的视频或音频。在这时候,你可能需要做一些格式转换,如果是视频的话,你需要将它们转化为 WebM 或者 MP4,如果是音频的话,你需要将它们转化为 MP3 或者 Ogg。不过你并不需要担心,有许多的程序都能够帮你解决这些问题,例如 [Miro Video Converter](http://www.mirovideoconverter.com/) 和 [Audacity](https://sourceforge.net/projects/audacity/)。我们非常希望你能够亲自动手实现它。 diff --git a/files/zh-cn/learn/tools_and_testing/cross_browser_testing/introduction/index.md b/files/zh-cn/learn/tools_and_testing/cross_browser_testing/introduction/index.md index ef850e5d9a8c18..644ea863c2dca0 100644 --- a/files/zh-cn/learn/tools_and_testing/cross_browser_testing/introduction/index.md +++ b/files/zh-cn/learn/tools_and_testing/cross_browser_testing/introduction/index.md @@ -66,7 +66,7 @@ slug: Learn/Tools_and_testing/Cross_browser_testing/Introduction 一个项目的测试和排错工作流可以大致分为如下四个阶段(这只是粗略划分——因人而异): -**初步规划>开发>测试/查错>修复/迭代** +**初步规划** > **开发** > **测试/查错** > **修复/迭代** 步骤 2 到步骤 4 在必要时应多次重复直到开发完成。我们会在后续章节详细探讨测试程序的不同之处,但现在我们只概述每个阶段可能出现的问题。 diff --git a/files/zh-cn/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md b/files/zh-cn/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md index c1a375c9e4ce37..7abd851483bb63 100644 --- a/files/zh-cn/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md +++ b/files/zh-cn/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md @@ -47,7 +47,7 @@ slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension 与此同时,你也可以先引入一个后台页面,再在后台页面中引入脚本。这样做能为后台脚本添加 ES 6 模块支持,算是一个优势。 -**manifest.json** +manifest.json 的内容如下: ```json // manifest.json @@ -57,7 +57,7 @@ slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension } ``` -**background-page.html** +background-page.html 的内容如下: ```html @@ -83,7 +83,7 @@ slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension #### 跨域访问 -后台脚本可以向任何拥有[主机权限](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#%E4%B8%BB%E6%9C%BA%E6%9D%83%E9%99%90)的主机发送 XHR 请求。 +后台脚本可以向任何拥有[主机权限](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#主机权限)的主机发送 XHR 请求。 #### 网页内容 diff --git a/files/zh-cn/mozilla/firefox/releases/59/index.md b/files/zh-cn/mozilla/firefox/releases/59/index.md index 32f1b0ab41e4e3..850aa0b1e38e62 100644 --- a/files/zh-cn/mozilla/firefox/releases/59/index.md +++ b/files/zh-cn/mozilla/firefox/releases/59/index.md @@ -90,13 +90,13 @@ _无变化。_ ### SVG -_无变化_ +_无变化。_ ## Mozilla 和附加组件开发者应该注意的变化 ### WebExtensions -_无变化_ +_无变化。_ ## 参见 diff --git a/files/zh-cn/web/api/canvasgradient/index.md b/files/zh-cn/web/api/canvasgradient/index.md index db1ff10040eae5..fb4833b3a5a43c 100644 --- a/files/zh-cn/web/api/canvasgradient/index.md +++ b/files/zh-cn/web/api/canvasgradient/index.md @@ -13,12 +13,12 @@ _不透明对象,没有暴露的属性。_ ## 方法 -_没有继承的方法_ +_没有继承的方法。_ - {{domxref("CanvasGradient.addColorStop()")}} - : 添加一个由偏移(`offset`)和颜色(`color`)定义的断点到渐变中。如果偏移值不在 0 到 1 之间,将抛出`INDEX_SIZE_ERR 错误,如果颜色值不能被解析为有效的 CSS 颜色值 {{cssxref("<color>")}},将抛出 SYNTAX_ERR`错误。 -## 标准 +## 规范 {{Specifications}} @@ -26,7 +26,7 @@ _没有继承的方法_ {{Compat}} -## 请参考 +## 参见 -- 创建方法在{{domxref("CanvasRenderingContext2D")}}. -- {{HTMLElement("canvas")}} 元素及其有关接口{{domxref("HTMLCanvasElement")}}. +- 创建方法在 {{domxref("CanvasRenderingContext2D")}}。 +- {{HTMLElement("canvas")}} 元素及其有关接口 {{domxref("HTMLCanvasElement")}}。 diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md index b4c8a4693930c5..49a3ab7e5f31d1 100644 --- a/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md +++ b/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md @@ -16,10 +16,8 @@ void ctx.putImageData(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight ### 参数 -**imageData** - -{{domxref("ImageData")}} ,包含像素值的数组对象。 - +- `imageData` + - : {{domxref("ImageData")}},包含像素值的数组对象。 - `dx` - : 源图像数据在目标画布中的位置偏移量(x 轴方向的偏移量)。 - `dy` diff --git a/files/zh-cn/web/api/document/adoptnode/index.md b/files/zh-cn/web/api/document/adoptnode/index.md index 3ff3cdfac507f5..ce4a1573740ce3 100644 --- a/files/zh-cn/web/api/document/adoptnode/index.md +++ b/files/zh-cn/web/api/document/adoptnode/index.md @@ -7,64 +7,25 @@ slug: Web/API/Document/adoptNode 从其他的 document 文档中获取一个节点。该节点以及它的子树上的所有节点都会从原文档删除 (如果有这个节点的话), 并且它的[`ownerDocument`](/zh-CN/docs/DOM/Node.ownerDocument) 属性会变成当前的 document 文档。之后你可以把这个节点插入到当前文档中。 -**从 Gecko 1.9 (Firefox 3) 开始支持** - ## 语法 -```plain -node = document.adoptNode(externalNode); +```js-nolint +adoptNode(externalNode) ``` -- `node` - - : 导入当前文档的新节点。新节点的 [`parentNode`](/zh-CN/DOM/Node.parentNode) 是 `null`, 因为它还没有插入当前文档的文档树中,属于游离状态。 - `externalNode` - : 将要从外部文档导入的节点。 -## 例子 +## 示例 ```js -// 该函数用来从本文档的第一个 iframe 中获取第一个 element 元素, -// 并插入到当前文档树中 -function getEle() { - var iframe = document.getElementsByTagName("iframe")[0], - ele = iframe.contentWindow.document.body.firstElementChild; - if (ele) { - document.body.appendChild(document.adoptNode(ele)); - } else { - alert("没有更多元素了"); - } -} -document.getElementById("move").onclick = getEle; -``` +const iframe = document.querySelector("iframe"); +const iframeImages = iframe.contentDocument.querySelectorAll("img"); +const newParent = document.getElementById("images"); -HTML 文档 - -```html -// index.html - - - - - index.html - - - - - - - -// iframe.html - - - - - iframe.html - - -

Hello

-

My world!

- - +iframeImages.forEach((imgEl) => { + newParent.appendChild(document.adoptNode(imgEl)); +}); ``` ## 笔记 diff --git a/files/zh-cn/web/api/domimplementation/index.md b/files/zh-cn/web/api/domimplementation/index.md index aa6533def572ba..d69a6e5246ce42 100644 --- a/files/zh-cn/web/api/domimplementation/index.md +++ b/files/zh-cn/web/api/domimplementation/index.md @@ -13,7 +13,7 @@ _这个接口没有特定的属性,并且也没有继承到任何属性。_ ## 方法 -_没有继承的方法_ +_没有继承的方法。_ - {{domxref("DOMImplementation.createDocument()")}} - : 创建并返回一个 {{domxref("XMLDocument")}}对象。 @@ -32,6 +32,6 @@ _没有继承的方法_ {{Compat}} -## See also +## 参见 -- [The DOM interfaces index.](/zh-CN/docs/DOM/DOM_Reference) +- [DOM 接口索引](/zh-CN/docs/Web/API/Document_Object_Model) diff --git a/files/zh-cn/web/api/dynamicscompressornode/index.md b/files/zh-cn/web/api/dynamicscompressornode/index.md index 2cb20fde626299..a36b04809a3cba 100644 --- a/files/zh-cn/web/api/dynamicscompressornode/index.md +++ b/files/zh-cn/web/api/dynamicscompressornode/index.md @@ -39,7 +39,7 @@ slug: Web/API/DynamicsCompressorNode ## 属性 -_由父类 {{domxref("AudioNode")}} 派生_ +_由父类 {{domxref("AudioNode")}} 派生。_ - {{domxref("DynamicsCompressorNode.threshold")}} {{readonlyInline}} - : [比例系数](/zh-CN/docs/DOM/AudioParam#k-rate) {{domxref("AudioParam")}} 型。分贝高于此值时,将会进行压缩。 diff --git a/files/zh-cn/web/api/element/lostpointercapture_event/index.md b/files/zh-cn/web/api/element/lostpointercapture_event/index.md index f139319ddce745..116f85de394888 100644 --- a/files/zh-cn/web/api/element/lostpointercapture_event/index.md +++ b/files/zh-cn/web/api/element/lostpointercapture_event/index.md @@ -7,7 +7,7 @@ slug: Web/API/Element/lostpointercapture_event The **`onlostpointercapture`** event handler property of the {{domxref("GlobalEventHandlers")}} interface returns the event handler (function) for the `lostpointercapture` event type. -**语法** +## 语法 ```plain window.onlostpointercapture = functionReference diff --git a/files/zh-cn/web/api/event/eventphase/index.md b/files/zh-cn/web/api/event/eventphase/index.md index bb9dac2ba95e74..5cfe038c0618ec 100644 --- a/files/zh-cn/web/api/event/eventphase/index.md +++ b/files/zh-cn/web/api/event/eventphase/index.md @@ -13,13 +13,13 @@ slug: Web/API/Event/eventPhase var phase = event.eventPhase; ``` -返回一个代表当前执行阶段的 整数值,下面列出了不同的执行阶段[事件阶段常量](#事件阶段常量). +返回一个代表当前执行阶段的整数值,下面列出了不同的执行阶段[事件阶段常量](#事件阶段常量)。 ## 常量 ### 事件阶段常量 -### 下面这些值表示了事件流当前执行的阶段。 +### 下面这些值表示了事件流当前执行的阶段 | 常量 | 值 | 描述 | | ----------------------- | --- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/files/zh-cn/web/api/event/originaltarget/index.md b/files/zh-cn/web/api/event/originaltarget/index.md index 39cb9fce2f8798..65dc09eee131b5 100644 --- a/files/zh-cn/web/api/event/originaltarget/index.md +++ b/files/zh-cn/web/api/event/originaltarget/index.md @@ -5,19 +5,13 @@ slug: Web/API/Event/originalTarget {{ ApiRef("DOM") }} {{Non-standard_header}} -## 简介 - -original target 是事件重定向之前的原始目标。(Mozilla-特有) +**`originalTarget`** 只读属性是事件重定向之前的原始目标。(Mozilla-特有) 在 XBL 的匿名内容中,这将是该事件最初触发的匿名节点。看到匿名的内容。查看[Anonymous Content#Event_Flow_and_Targeting](/zh-CN/docs/XBL/XBL_1.0_Reference/Anonymous_Content#Event_Flow_and_Targeting) 获取更多细节。 -注意:原始目标也可能是原生的匿名内容 (参见 Bug(“208427”)),在这种情况下,它对于非特权代码是无用的。 - -查看[Comparison of Event Targets](/zh-CN/docs/DOM/event/Comparison_of_Event_Targets) - -## 示例 +注意:原始目标也可能是原生的匿名内容,在这种情况下,它对于非特权代码是无用的。 -_需要一个有意义的示例_ +参见[事件目标对比](/zh-CN/docs/Web/API/Event/Comparison_of_Event_Targets)。 ## 规范 diff --git a/files/zh-cn/web/api/fontface/index.md b/files/zh-cn/web/api/fontface/index.md index 0ac2ba41d05893..911265bbcf48d2 100644 --- a/files/zh-cn/web/api/fontface/index.md +++ b/files/zh-cn/web/api/fontface/index.md @@ -31,21 +31,21 @@ _这个接口不继承任何属性。_ - {{domxref("FontFace.featureSettings")}} - : 这是不是一个 {{domxref("DOMString")}} ?是的话将表示该字体的 _features_ 属性,相当于 {{cssxref("@font-face/feature-settings", "feature-settings")}} 。 - {{domxref("FontFace.status")}} {{readonlyinline}} - - : 返回一个表示字体当前状态的可枚举值,它可能是下列之一: `"unloaded"`, `"loading"`, `"loaded"`, `"error"`。 + - : 返回一个表示字体当前状态的可枚举值,它可能是下列之一:`"unloaded"`、`"loading"`、`"loaded"`、`"error"`。 - {{domxref("FontFace.loaded")}} {{readonlyinline}} - - : 当字体完全加载或加载失败时返回该 `FontFace` 的{{domxref("Promise")}} 。 + - : 当字体完全加载或加载失败时返回该 `FontFace` 的 {{domxref("Promise")}}。 -## Methods +## 方法 -_这个接口不继承任何方法_ +_这个接口不继承任何方法。_ - {{domxref("FontFace.load()")}} - - : 加载该字体,返回该字体完全加载或加载失败时的{{domxref("Promise")}} 。 + - : 加载该字体,返回该字体完全加载或加载失败时的 {{domxref("Promise")}}。 -## Specifications +## 规范 {{Specifications}} -## Browser compatibility +## 浏览器兼容性 {{Compat}} diff --git a/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.md b/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.md index be4b00ae8cd31b..a130b3b382f2f0 100644 --- a/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.md +++ b/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.md @@ -234,13 +234,9 @@ function gameLoop() { } ``` -### 使用坐标方向 (axes) 信息 +## 完整的示例:显示控制器状态 -**待讨论 (除了一个用 axes\[i] 一个用 button\[i].value,其他基本一样,Firefox 与 Chrome 均是。)** - -## 完整的例子:显示控制器状态 - -这个例子展示了怎样使用 {{ domxref("Gamepad") }} 对象,还有 [`gamepadconnected`](/zh-CN/docs/Web/API/Window/gamepadconnected_event) 和 [`gamepaddisconnected`](/zh-CN/docs/Web/API/Window/gamepaddisconnected_event) 事件显示所有已连接到系统的控制器的状态。你可以查看[在线演示](http://luser.github.io/gamepadtest/)并且可在 Github 上看到[完整的源代码](https://github.com/luser/gamepadtest)。 +这个示例展示了怎样使用 {{ domxref("Gamepad") }} 对象,还有 [`gamepadconnected`](/zh-CN/docs/Web/API/Window/gamepadconnected_event) 和 [`gamepaddisconnected`](/zh-CN/docs/Web/API/Window/gamepaddisconnected_event) 事件显示所有已连接到系统的控制器的状态。你可以查看[在线演示](http://luser.github.io/gamepadtest/)并且可在 Github 上看到[完整的源代码](https://github.com/luser/gamepadtest)。 ```js var haveEvents = "ongamepadconnected" in window; diff --git a/files/zh-cn/web/api/hashchangeevent/index.md b/files/zh-cn/web/api/hashchangeevent/index.md index b95c1bcc936741..d50933b5e902d5 100644 --- a/files/zh-cn/web/api/hashchangeevent/index.md +++ b/files/zh-cn/web/api/hashchangeevent/index.md @@ -22,30 +22,10 @@ _这个接口也从 {{domxref("Event")}} 中继承属性。_ ## 方法 -_这个接口没有自己的方法,但从 {{domxref("Event")}} 中继承方法_ +_这个接口没有自己的方法,但从 {{domxref("Event")}} 中继承方法。_ ## 示例 -### 井号内容变化的语法选择 - -你可以选择使用下述的任一方法监听 [`hashchange`](/zh-CN/docs/Web/API/Window/hashchange_event) 事件。 - -```js -window.onhashchange = funcRef; -``` - -**或** - -```html - -``` - -**或** - -```js -window.addEventListener("hashchange", funcRef, false); -``` - ### 基本示例 ```js diff --git a/files/zh-cn/web/api/htmlbaseelement/index.md b/files/zh-cn/web/api/htmlbaseelement/index.md index 95dd1c9d006b57..2a3200242d9373 100644 --- a/files/zh-cn/web/api/htmlbaseelement/index.md +++ b/files/zh-cn/web/api/htmlbaseelement/index.md @@ -9,7 +9,7 @@ slug: Web/API/HTMLBaseElement ## 属性 -_继承了其父级 {{domxref("HTMLElement")}} 的所有属性_ +_继承了其父级 {{domxref("HTMLElement")}} 的所有属性。_ - {{domxref("HTMLBaseElement.href")}} - : 映射自 {{domxref("DOMString")}} HTML [`href`](/zh-CN/docs/Web/HTML/Element/base#href) 特性,包含了当前文档中所有相对 URL 地址的基准 URL。 @@ -20,14 +20,14 @@ _继承了其父级 {{domxref("HTMLElement")}} 的所有属性_ _没有特殊的方法,继承了其父级 {{domxref("HTMLElement")}} 的所有特性。_ -## Specifications +## 规范 {{Specifications}} -## Browser compatibility +## 浏览器兼容性 {{Compat}} -## See also +## 参见 -- HTML element implementing this interface: {{ HTMLElement("base") }} +- 实现了该接口的 HTML 元素:{{ HTMLElement("base") }} diff --git a/files/zh-cn/web/api/htmlmediaelement/index.md b/files/zh-cn/web/api/htmlmediaelement/index.md index 4ca33ee457d1fc..aa5d2545460a66 100644 --- a/files/zh-cn/web/api/htmlmediaelement/index.md +++ b/files/zh-cn/web/api/htmlmediaelement/index.md @@ -3,11 +3,15 @@ title: HTMLMediaElement slug: Web/API/HTMLMediaElement --- -{{APIRef("HTML DOM")}}HTML 媒体元素接口在属性和方法中添加了 {{domxref("HTMLElement", "HTML 元素")}}来支持基础的媒体相关的能力,就像 audio 和 video 一样。{{domxref("HTMLVideoElement", "HTML 视频元素")}}和 {{domxref("HTMLAudioElement", "HTML 音频元素")}}元素都继承自此接口。{{InheritanceDiagram(600, 180)}} +{{APIRef("HTML DOM")}} + +HTML 媒体元素接口在属性和方法中添加了 {{domxref("HTMLElement", "HTML 元素", "", 1)}}来支持基础的媒体相关的能力,就像音频和视频一样。{{domxref("HTMLVideoElement", "HTML 视频元素", "", 1)}}和{{domxref("HTMLAudioElement", "HTML 音频元素", "", 1)}}元素都继承自此接口。 + +{{InheritanceDiagram(600, 180)}} ## 特性 -_从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node")}}, 和 {{domxref("EventTarget")}} 继承属性_ +_从父级 {{domxref("HTMLElement")}}、{{domxref("Element")}}、{{domxref("Node")}} 和 {{domxref("EventTarget")}} 继承属性。_ @@ -30,8 +34,8 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -57,8 +61,8 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -95,7 +99,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -144,7 +148,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -152,7 +156,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -217,7 +221,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") @@ -226,7 +230,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") - + @@ -413,7 +417,7 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node")
{{domxref("Boolean")}}

- 表示[`autoplay`](/zh-CN/docs/Web/HTML/Element/video#autoplay)的 HTML - 属性,表明在视频加载可用时是否不中断地自动播放资源 + 表示 autoplay + 的 HTML 属性,表明在视频加载可用时是否不中断地自动播放资源

{{domxref("Boolean")}} 映射在 HTML - 标签。[`controls`](/zh-CN/docs/Web/HTML/Element/video#controls)属性控制是否显示用户播放界面的控制 - HTML + 标签。controls + 属性控制是否显示用户播放界面的控制 HTML
defaultMuted {{domxref("Boolean")}} - 映射在 HTML 标签上。 [`muted`](/zh-CN/docs/Web/HTML/Element/video#muted) + 映射在 HTML 标签上。muted 属性表示媒体声音被播放时是否应该被静音。这个属性不能动态设置静音/不静音,如果希望设置静音/不静音,请使用 muted 属性 loop {{domxref("Boolean")}} - 会映射在 HTML 标签 [`loop`](/zh-CN/docs/Web/HTML/Element/video#loop) 属性 + 会映射在 HTML 标签 loop 属性 , 决定该媒体是否循环播放。
mediaGroup {{domxref("DOMString")}} - 反映在 HTML [`mediagroup`](/zh-CN/docs/Web/HTML/Element/video#mediagroup) + 反映在 HTML mediagroup 标签上。 表示元素所归属的分组,同一组的媒体元素会共享同一个控制器(controller)。
- mozSampleRate {{readonlyinline}} + mozSampleRate{{readonlyinline}} {{ non-standard_inline() }} long
mozSrcObject {{ non-standard_inline() }}mozSrcObject{{ non-standard_inline() }} {{domxref("MediaStream")}} Lets you set or get the @@ -315,10 +319,10 @@ _从父级 {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node") preload {{ domxref("DOMString") }} - Reflects the [`preload`](/zh-CN/docs/Web/HTML/Element/video#preload) HTML + Reflects the preload HTML attribute, indicating what data should be preloaded, if any. Possible values are: none, metadata, auto. - See [`preload`](/zh-CN/docs/Web/HTML/Element/video#preload) attribute + See preload attribute documentation for details.
src {{ domxref("DOMString") }} - Reflects the [`src`](/zh-CN/docs/Web/HTML/Element/video#src) HTML + Reflects the src HTML attribute, containing the URL of a media resource to use. Gecko implements a similar functionality for streams: mozSrcObject. diff --git a/files/zh-cn/web/api/htmlmediaelement/paused/index.md b/files/zh-cn/web/api/htmlmediaelement/paused/index.md index e2d78ffdba03dd..02b63f2f559df2 100644 --- a/files/zh-cn/web/api/htmlmediaelement/paused/index.md +++ b/files/zh-cn/web/api/htmlmediaelement/paused/index.md @@ -5,24 +5,16 @@ slug: Web/API/HTMLMediaElement/paused {{APIRef("HTML DOM")}} -`属性 (只读)HTMLMediaElement.paused` 告诉视频是否正在暂停 +只读属性 `HTMLMediaElement.paused` 指示视频是否正在暂停。 -## 语法 +## 返回值 -```plain -var isPaused = audioOrVideo.paused -``` - -### 返回值 - -类型{{domxref("Boolean")}}。`true` 暂停中 `false` 没有暂停 - -_仅限暂停状态 因网络原因造成的缓冲状态仍然会告诉你不在暂停状态_ +布尔值。`true` 表示正在暂停,`false` 表示没有暂停。 -## 例子 +## 示例 ```js -var obj = document.createElement("video"); +const obj = document.createElement("video"); console.log(obj.paused); // true ``` @@ -34,6 +26,6 @@ console.log(obj.paused); // true {{Compat}} -## 参考文档 +## 参见 -- The interface defining it, {{domxref("HTMLMediaElement")}}. +- {{domxref("HTMLMediaElement")}}:用于定义 `HTMLMediaElement.paused` 属性的接口。 diff --git a/files/zh-cn/web/api/htmltemplateelement/index.md b/files/zh-cn/web/api/htmltemplateelement/index.md index 16758b6beef883..e81b541619b47d 100644 --- a/files/zh-cn/web/api/htmltemplateelement/index.md +++ b/files/zh-cn/web/api/htmltemplateelement/index.md @@ -5,20 +5,20 @@ slug: Web/API/HTMLTemplateElement {{APIRef("Web Components")}} -可以使用**`HTMLTemplateElement`** 接口来访问 HTML {{HTMLElement("template")}}元素的内容。 +可以使用 **`HTMLTemplateElement`** 接口来访问 HTML {{HTMLElement("template")}} 元素的内容。 {{InheritanceDiagram(600, 120)}} ## 属性 -_这个接口继承了 {{domxref("HTMLElement")}}的属性_ +_这个接口继承了 {{domxref("HTMLElement")}} 的属性。_ - {{domxref("HTMLTemplateElement.content")}}{{readonlyinline}} - - : {{domxref("DocumentFragment")}}对象,包裹了模板元素{{HTMLElement("template")}}的内容。这个属性是只读的 DOM 树。 + - : {{domxref("DocumentFragment")}} 对象,包裹了模板元素 {{HTMLElement("template")}} 的内容。这个属性是只读的 DOM 树。 -## Methods +## 方法 -_这个接口继承了 {{domxref("HTMLElement")}}的方法。_ +_这个接口继承了 {{domxref("HTMLElement")}} 的方法。_ ## 规范 diff --git a/files/zh-cn/web/api/inputevent/iscomposing/index.md b/files/zh-cn/web/api/inputevent/iscomposing/index.md index 4301529d0ffc45..a3ca0e56b218c5 100644 --- a/files/zh-cn/web/api/inputevent/iscomposing/index.md +++ b/files/zh-cn/web/api/inputevent/iscomposing/index.md @@ -1,36 +1,32 @@ --- -title: InputEvent.isComposing +title: InputEvent:isComposing 属性 slug: Web/API/InputEvent/isComposing --- -{{APIRef("DOM Events")}} +{{APIRef("UI Events")}} -The **`InputEvent.isComposing`** read-only property returns a {{jsxref("Boolean")}} value indicating if the event is fired after [`compositionstart`](/zh-CN/docs/Web/API/Element/compositionstart_event) and before [`compositionend`](/zh-CN/docs/Web/API/Element/compositionend_event). +**`InputEvent.isComposing`** 只读属性返回一个布尔值,表示事件是否是在 {{domxref("Element/compositionstart_event", "compositionstart")}} 之后且在 {{domxref("Element/compositionend_event", "compositionend")}} 之前触发的。 -## 这是一个只读属性,返回 boolean 类型。表示正处于输入事件的开始与结束之间,表示正在输入状态。 +## 返回值 -## Syntax +一个布尔值。 -```plain -var bool = event.isComposing; -``` - -## Example +## 示例 ```js -var inputEvent = new InputEvent("syntheticInput", false); -console.log(inputEvent.isComposing); // return false +const inputEvent = new InputEvent("syntheticInput", false); +console.log(inputEvent.isComposing); // 返回 false ``` -## Specifications +## 规范 {{Specifications}} -## Browser compatibility +## 浏览器兼容性 {{Compat}} -## See also +## 参见 -- [`compositionstart`](/zh-CN/docs/Web/API/Element/compositionstart_event) and [`compositionend`](/zh-CN/docs/Web/API/Element/compositionend_event) +- {{domxref("Element/compositionstart_event", "compositionstart")}} 和 {{domxref("Element/compositionend_event", "compositionend")}} - {{domxref("InputEvent")}} diff --git a/files/zh-cn/web/api/mathmlelement/index.md b/files/zh-cn/web/api/mathmlelement/index.md index 9a6e58b73e6aaa..937be9b4353550 100644 --- a/files/zh-cn/web/api/mathmlelement/index.md +++ b/files/zh-cn/web/api/mathmlelement/index.md @@ -9,11 +9,11 @@ slug: Web/API/MathMLElement ## 属性 -_This interface has no properties, but inherits properties from: {{DOMxRef("DocumentAndElementEventHandlers")}}, {{DOMxRef("Element")}}, {{DOMxRef("ElementCSSInlineStyle")}}, {{DOMxRef("GlobalEventHandlers")}}, {{DOMxRef("HTMLOrForeignElement")}}_ +_This interface has no properties, but inherits properties from: {{DOMxRef("DocumentAndElementEventHandlers")}}, {{DOMxRef("Element")}}, {{DOMxRef("ElementCSSInlineStyle")}}, {{DOMxRef("GlobalEventHandlers")}}, {{DOMxRef("HTMLOrForeignElement")}}._ ## 方法 -_This interface has no methods, but inherits methods from: {{DOMxRef("DocumentAndElementEventHandlers")}}, {{DOMxRef("Element")}}, {{DOMxRef("ElementCSSInlineStyle")}}, {{DOMxRef("GlobalEventHandlers")}}, {{DOMxRef("HTMLOrForeignElement")}}_ +_This interface has no methods, but inherits methods from: {{DOMxRef("DocumentAndElementEventHandlers")}}, {{DOMxRef("Element")}}, {{DOMxRef("ElementCSSInlineStyle")}}, {{DOMxRef("GlobalEventHandlers")}}, {{DOMxRef("HTMLOrForeignElement")}}._ ## 示例 diff --git a/files/zh-cn/web/api/messageport/index.md b/files/zh-cn/web/api/messageport/index.md index 4dc139ec21392b..f39d37394a911f 100644 --- a/files/zh-cn/web/api/messageport/index.md +++ b/files/zh-cn/web/api/messageport/index.md @@ -11,7 +11,7 @@ slug: Web/API/MessagePort ## 方法 -_继承自父类 {{domxref("EventTarget")}} 的方法_ +_继承自父类 {{domxref("EventTarget")}} 的方法。_ - {{domxref("MessagePort.postMessage")}} - : 从端口发送一条消息,并且可选是否将对象的所有权交给其他浏览器上下文。 @@ -22,7 +22,7 @@ _继承自父类 {{domxref("EventTarget")}} 的方法_ ## 事件回调 -_继承自父类 {{domxref("EventTarget")}} 的事件回调_ +_继承自父类 {{domxref("EventTarget")}} 的事件回调。_ - {{domxref("MessagePort.onmessage")}} - : 是一个 {{domxref("EventListener")}}, 当类型为 `message` 的 {{domxref("MessageEvent")}} 在该端口触发时,它将会被调用 ── 也就是说,该端口收到了一条消息。 @@ -38,18 +38,18 @@ _继承自父类 {{domxref("EventTarget")}} 的事件回调_ - : 当 `MessagePort` 对象收到无法被反序列化的消息时触发。 也可以通过 {{domxref("MessagePort.onmessageerror","onmessageerror")}} 属性使用。 -## 例子 +## 示例 -在下面的例子中,你可以看到一个使用 {{domxref("MessageChannel.MessageChannel","MessageChannel()")}} 构造函数创建出的新 channel. +在下面的示例中,你可以看到一个使用 {{domxref("MessageChannel.MessageChannel","MessageChannel()")}} 构造函数创建出的新通道。 -当 IFrame 加载完成后,我们给 {{domxref("MessageChannel.port1")}} 注册了一个 {{domxref("MessagePort.onmessage","onmessage")}} 回调,并且使用 {{domxref("window.postMessage")}} 方法把 {{domxref("MessageChannel.port2")}} 和一条消息一起传给 IFrame. +当 IFrame 加载完成后,我们给 {{domxref("MessageChannel.port1")}} 注册了一个 {{domxref("MessagePort.onmessage","onmessage")}} 回调,并且使用 {{domxref("window.postMessage")}} 方法把 {{domxref("MessageChannel.port2")}} 和一条消息一起传给 IFrame。 当从 IFrame 收到消息时,`onMessage` 方法会把消息输出到一个段落里。 -```plain +```js var channel = new MessageChannel(); -var output = document.querySelector('.output'); -var iframe = document.querySelector('iframe'); +var output = document.querySelector(".output"); +var iframe = document.querySelector("iframe"); // 等待 iframe 加载 iframe.addEventListener("load", onLoad); @@ -59,10 +59,11 @@ function onLoad() { channel.port1.onmessage = onMessage; // 把 port2 传给 iframe - iframe.contentWindow.postMessage('Hello from the main page!', '*', [channel.port2]); + iframe.contentWindow.postMessage("Hello from the main page!", "*", [ + channel.port2, + ]); } - // 处理 port1 收到的消息 function onMessage(e) { output.innerHTML = e.data; diff --git a/files/zh-cn/web/api/navigator/getusermedia/index.md b/files/zh-cn/web/api/navigator/getusermedia/index.md index 9189a5ef2959fb..d8e9f3f2d71517 100644 --- a/files/zh-cn/web/api/navigator/getusermedia/index.md +++ b/files/zh-cn/web/api/navigator/getusermedia/index.md @@ -5,7 +5,7 @@ slug: Web/API/Navigator/getUserMedia > **备注:** 此 API 已更名为 {{domxref("MediaDevices.getUserMedia()")}}。请使用那个版本进行替代!这个已废弃的 API 版本仅为了向后兼容而存在。 -{{APIRef}}{{deprecated_header}} +{{APIRef("Media Capture and Streams")}}{{deprecated_header}} **Navigator.getUserMedia()** 方法提醒用户需要使用音频(0 或者 1)和(0 或者 1)视频输入设备,比如相机,屏幕共享,或者麦克风。如果用户给予许可,**successCallback** 回调就会被调用,{{domxref("MediaStream")}} 对象作为回调函数的参数。如果用户拒绝许可或者没有媒体可用,**errorCallback** 就会被调用,类似的,**`PermissionDeniedError`** 或者 **`NotFoundError`** 对象作为它的参数。注意,有可能以上两个回调函数都不被调用,因为不要求用户一定作出选择(允许或者拒绝)。 @@ -17,59 +17,59 @@ navigator.getUserMedia ( constraints, successCallback, errorCallback ); ### 参数 -**constraints** +- `constraints` + - : {{domxref("MediaStreamConstaints")}} 对象指定了请求使用媒体的类型,还有每个类型的所需要的参数。具体细节请参见 {{domxref("MediaDevices.getUserMedia()")}} 方法下面的 [constraints](/zh-CN/docs/Web/API/MediaDevices/getUserMedia#Parameters) 部分。 +- `successCallback` -{{domxref("MediaStreamConstaints")}} 对象指定了请求使用媒体的类型,还有每个类型的所需要的参数。具体细节请参见 {{domxref("MediaDevices.getUserMedia()")}} 方法下面的 [constraints](/zh-CN/docs/Web/API/MediaDevices/getUserMedia#Parameters) 部分。 + - : 当调用成功后,successCallback 中指定的函数就被调用,包含了媒体流的 {{domxref("MediaStream")}} 对象作为它的参数,你可以把媒体流对象赋值给合适的元素,然后使用它,就像下面的例子一样: -**successCallback** + ```js + function(stream) { + var video = document.querySelector('video'); + video.src = window.URL.createObjectURL(stream); + video.onloadedmetadata = function(e) { + // Do something with the video here. + }; + } + ``` -当调用成功后,successCallback 中指定的函数就被调用,包含了媒体流的 {{domxref("MediaStream")}} 对象作为它的参数,你可以把媒体流对象赋值给合适的元素,然后使用它,就像下面的例子一样: +- `errorCallback` -``` -function(stream) { - var video = document.querySelector('video'); - video.src = window.URL.createObjectURL(stream); - video.onloadedmetadata = function(e) { - // Do something with the video here. - }; -} -``` + - : 当调用失败,errorCallback 中指定的函数就会被调用,{{domxref("MediaStreamError")}} 对象作为它唯一的参数;此对象基于 {{domxref("DOMException")}} 对象构建。错误码描述见参见以下: -**errorCallback** - -当调用失败,errorCallback 中指定的函数就会被调用,{{domxref("MediaStreamError")}} 对象作为它唯一的参数;此对象基于 {{domxref("DOMException")}} 对象构建。错误码描述见参见以下: - -| Error | Description | -| ----------------------- | ---------------------------------- | -| `PermissionDeniedError` | 使用媒体设备请求被用户或者系统拒绝 | -| `NotFoundError` | 找不到 constraints 中指定媒体类型 | + | 错误 | 描述 | + | ----------------------- | ---------------------------------- | + | `PermissionDeniedError` | 使用媒体设备请求被用户或者系统拒绝 | + | `NotFoundError` | 找不到 constraints 中指定媒体类型 | ## 示例 ### 宽度和高度 -使用 getUserMedia() 的示例,包括了可以适用于多种浏览器前缀的代码。注意这种使用方式已经被废除,现代的使用方法请参见 {{domxref("MediaDevices.getUserMedia()")}} 下面的[示例](/zh-CN/docs/Web/API/MediaDevices/getUserMedia#Frame_rate)部分。 +使用 `getUserMedia()` 的示例,包括了可以适用于多种浏览器前缀的代码。注意这种使用方式已经被废除,现代的使用方法请参见 {{domxref("MediaDevices.getUserMedia()")}} 下面的[示例](/zh-CN/docs/Web/API/MediaDevices/getUserMedia#Frame_rate)部分。 -``` -navigator.getUserMedia = navigator.getUserMedia || - navigator.webkitGetUserMedia || - navigator.mozGetUserMedia; +```js +navigator.getUserMedia = + navigator.getUserMedia || + navigator.webkitGetUserMedia || + navigator.mozGetUserMedia; if (navigator.getUserMedia) { - navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } }, - function(stream) { - var video = document.querySelector('video'); - video.src = window.URL.createObjectURL(stream); - video.onloadedmetadata = function(e) { - video.play(); - }; - }, - function(err) { - console.log("The following error occurred: " + err.name); - } - ); + navigator.getUserMedia( + { audio: true, video: { width: 1280, height: 720 } }, + function (stream) { + var video = document.querySelector("video"); + video.src = window.URL.createObjectURL(stream); + video.onloadedmetadata = function (e) { + video.play(); + }; + }, + function (err) { + console.log("The following error occurred: " + err.name); + }, + ); } else { - console.log("getUserMedia not supported"); + console.log("getUserMedia not supported"); } ``` @@ -96,9 +96,9 @@ if (navigator.getUserMedia) { > **警告:** 新代码应当使用 {{domxref("Navigator.mediaDevices.getUserMedia()")}} 替代。 -## 更多参见 +## 参见 -- {{domxref("MediaDevices.getUserMedia()")}} 替代了当前废弃的版本。 -- [WebRTC](/zh-CN/docs/WebRTC) - the introductory page to the API -- [MediaStream API](/zh-CN/docs/WebRTC/MediaStream_API) - the API for the media stream objects -- [Taking webcam photos](/zh-CN/docs/WebRTC/taking_webcam_photos) - a tutorial on using `getUserMedia() for taking photos rather than video.` +- {{domxref("MediaDevices.getUserMedia()")}} 代替了这个已弃用的方法。 +- [WebRTC](/zh-CN/docs/Web/API/WebRTC_API)——该 API 的介绍页面 +- [媒体捕捉与媒体流 API](/zh-CN/docs/Web/API/Media_Capture_and_Streams_API)——媒体流对象的 API +- [使用网络摄像头拍摄照片](/zh-CN/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos)——使用 `getUserMedia()` 拍摄照片(而不是视频)的教程。 diff --git a/files/zh-cn/web/api/selection/modify/index.md b/files/zh-cn/web/api/selection/modify/index.md index 8ea5bda084ccc3..1638890186c050 100644 --- a/files/zh-cn/web/api/selection/modify/index.md +++ b/files/zh-cn/web/api/selection/modify/index.md @@ -37,7 +37,7 @@ selection.modify("extend", "forward", "word"); ## 规范 -_无_ +_无。_ ## 浏览器兼容性 diff --git a/files/zh-cn/web/api/svgaelement/index.md b/files/zh-cn/web/api/svgaelement/index.md index a1ecc8485efb31..44bbcf4ef8a639 100644 --- a/files/zh-cn/web/api/svgaelement/index.md +++ b/files/zh-cn/web/api/svgaelement/index.md @@ -5,7 +5,7 @@ slug: Web/API/SVGAElement {{APIRef("SVG")}} -## SVG a DOM 接口 +## SVG DOM 接口 `SVGAElement`接口提供了对{{ SVGElement("a") }}元素的属性的访问,而且还提供了操作该元素的方法。 @@ -55,45 +55,26 @@ slug: Web/API/SVGAElement 这个接口同样会从父级元素 *{{domxref("SVGGraphicsElement")}}*继承属性,并实现 _{{domxref("SVGURIReference")}}_ 和 _{{domxref("HTMLHyperlinkElementUtils")}}_ 中的功能。 -**{{domxref("SVGAElement.download")}}** - -参见 {{domxref("HTMLAnchorElement.download")}} - -**{{domxref("SVGAElement.href")}}** - -See {{domxref("HTMLAnchorElement.href")}} - -**{{domxref("SVGAElement.hreflang")}}** - -是一个反映 `hreflang` 属性的字符串(DOMString),表示链接资源的语言种类。 - -**{{domxref("SVGAElement.ping")}}** - -是一个反映 ping 值的字符串(DOMString),包含以空格分隔开的 URL 列表,当超链接可以被跟踪时,浏览器会(在后台)发送有 PING 主体的 {{HTTPMethod("POST")}} 的请求,一般用于追踪。 - -**{{domxref("SVGAElement.referrerPolicy")}}** - -参见 {{domxref("HTMLAnchorElement.referrerPolicy")}} - -**{{domxref("SVGAElement.rel")}}** - -参见 {{domxref("HTMLAnchorElement.rel")}} - -**{{domxref("SVGAElement.relList")}}** - -参见{{domxref("HTMLAnchorElement.relList")}} - -**{{domxref("SVGAElement.target")}} {{readonlyInline}}** - -它和特定元素的 {{SVGAttr("target")}} 属性相同 - -**{{domxref("SVGAElement.text")}}** - -是一个字符串(DOMString),作为 {{domxref("Node.textContent")}} 属性的代名词。 - -**{{domxref("SVGAElement.type")}}** - -是一个反映 `type` 属性的字符串(DOMString),表示链接资源的 MIME 种类。 +- {{domxref("SVGAElement.download")}} + - : 参见 {{domxref("HTMLAnchorElement.download")}} +- {{domxref("SVGAElement.href")}} + - : 参见 {{domxref("HTMLAnchorElement.href")}} +- {{domxref("SVGAElement.hreflang")}} + - : 是一个反映 `hreflang` 属性的字符串(DOMString),表示链接资源的语言种类。 +- {{domxref("SVGAElement.ping")}} + - : 是一个反映 ping 值的字符串(DOMString),包含以空格分隔开的 URL 列表,当超链接可以被跟踪时,浏览器会(在后台)发送有 PING 主体的 {{HTTPMethod("POST")}} 的请求,一般用于追踪。 +- {{domxref("SVGAElement.referrerPolicy")}} + - : 参见 {{domxref("HTMLAnchorElement.referrerPolicy")}} +- {{domxref("SVGAElement.rel")}} + - : 参见 {{domxref("HTMLAnchorElement.rel")}} +- {{domxref("SVGAElement.relList")}} + - : 参见{{domxref("HTMLAnchorElement.relList")}} +- {{domxref("SVGAElement.target")}} {{readonlyInline}} + - : 它和特定元素的 {{SVGAttr("target")}} 属性相同 +- {{domxref("SVGAElement.text")}} + - : 是一个字符串(DOMString),作为 {{domxref("Node.textContent")}} 属性的代名词。 +- {{domxref("SVGAElement.type")}} + - : 是一个反映 `type` 属性的字符串(DOMString),表示链接资源的 MIME 种类。 ## 方法 @@ -127,4 +108,4 @@ linkRef.onclick = function () { ## 参见 -- {{ SVGElement("a") }} SVG Element +- {{ SVGElement("a") }} SVG 元素 diff --git a/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md b/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md index 40850a2b903f2e..5cca59f1664619 100644 --- a/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md +++ b/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md @@ -231,7 +231,7 @@ export { initBuffers }; 当上一步完成,我们创建一个 Javascript 数组去记录每一个正方体的每一个顶点。然后将其转化为 WebGL 浮点型类型的数组,并将其传到 gl 对象的 {{domxref("WebGLRenderingContext.bufferData()", "bufferData()")}} 方法来建立对象的顶点。 -**绘制场景** +## 绘制场景 当着色器和物体都创建好后,我们可以开始渲染这个场景了。因为我们这个例子不会产生动画,所以 drawScene() 方法非常简单。它还使用了几个工具函数,稍后我们会介绍。 diff --git a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md index 0c3f9a1b62207d..54975fca98a678 100644 --- a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md +++ b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md @@ -669,8 +669,6 @@ gl_Position = projection * model * vec4(position, 1.0); 我们没有向后和向左移动相机,而是对盒子应用了逆变换:我们将盒子向后移动 1 米,然后向右移动 10 厘米。从两个物体的角度来看,结果是一样的。 -**<<< insert image(s) here >>>** - 最后一步是创建**视图矩阵**,该矩阵将转换场景中的对象,以便对它们进行定位以模拟相机当前位置与方向。目前的代码可以在世界空间中移动立方体并投影所有内容以获得透视图,但我们仍然无法移动相机。 想象一下使用物理摄像机拍摄电影。你可以自由地将相机放到任何你想放置的位置,并对准任何你选择的方向。为了在 3D 图形中对此进行仿真,我们使用视图矩阵来模拟物理相机的位置和旋转。 @@ -733,7 +731,7 @@ gl_Position = projection * view * model * vec4(position, 1.0); - 向视图矩阵中添加一些旋转矩阵以四处看看。 - 最后,跟踪鼠标的位置。使用 2 个旋转矩阵可以根据用户鼠标在屏幕上的位置上下移动相机。 -**参见** +## 参见 - [WebGL](/zh-CN/docs/Web/API/WebGL_API) - [3D projection](https://zh.wikipedia.org/wiki/3D_projection) diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.md b/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.md index 32d474f39dd410..c3281c3802ca3a 100644 --- a/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.md +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.md @@ -170,9 +170,7 @@ WebSocket 扩展和子协议是在握手过程中通过头信息进行协商的 Think of an extension as compressing a file before e-mailing it to someone. Whatever you do, you're sending the _same_ data in different forms. The recipient will eventually be able to get the same data as your local copy, but it is sent differently. That's what an extension does. WebSockets defines a protocol and a simple way to send data, but an extension such as compression could allow sending the same data but in a shorter format. -> **备注:** 扩展在规范的 5.8, 9, 11.3.2, and 11.4 进行了解释 - -_TODO_ +> **备注:** 扩展在规范的第 5.8、9、11.3.2 和 11.4 条进行了解释。 ### 子协议 diff --git a/files/zh-cn/web/api/webvr_api/index.md b/files/zh-cn/web/api/webvr_api/index.md index 6a711f0fe6dcfc..5cb80d2ba0f265 100644 --- a/files/zh-cn/web/api/webvr_api/index.md +++ b/files/zh-cn/web/api/webvr_api/index.md @@ -5,31 +5,19 @@ slug: Web/API/WebVR_API {{DefaultAPISidebar("WebVR API")}}{{SeeCompatTable}} -**WebVR API 能为虚拟现实设备的渲染提供支持 — 例如像 Oculus Rift 或者**HTC Vive **这样的头戴式设备与 Web apps 的连接。它能让开发者将位置和动作信息转换成 3D 场景中的运动。基于这项技术能产生很多有趣的应用,比如虚拟的产品展示,可交互的培训课程,以及超强沉浸感的第一人称游戏。** +WebVR API 能为虚拟现实设备的渲染提供支持——例如像 Oculus Rift 或者 HTC Vive 这样的头戴式设备与 Web 应用的连接。它能让开发者将位置和动作信息转换成 3D 场景中的运动。基于这项技术能产生很多有趣的应用,比如虚拟的产品展示,可交互的培训课程,以及超强沉浸感的第一人称游戏。 ## 概念及使用方法 -**【K】** - ![Sketch of a person in a chair with wearing goggles labelled "Head mounted display (HMD)" facing a monitor with a webcam labelled "Position sensor"](hw-setup.png) -Any VR devices attached to your computer will be returned by the {{domxref("Navigator.getVRDevices()")}} method. This returns an array of objects to represent the attached devices, which inherit from the general {{domxref("VRDevice")}} object — generally a head mounted display will have two devices — the head mounted display itself, represented by {{domxref("HMDVRDevice")}}, and a position sensor camera that keeps track of your head position, represented by {{domxref("PositionSensorVRDevice")}}. - -**连接到电脑的所有 VR 设备都将由 {{domxref("Navigator.getVRDevices()")}} 方法返回。这个方法将返回一个包含了所有已连接设备的对象数组,每个设备对应一个对象,该对象继承自 {{domxref("VRDevice")}} — 通常一个头显将包含两个设备 — 头显自身由 {{domxref("HMDVRDevice")}} 表示,和一个跟踪头部位置的位置捕捉传感器,由 {{domxref("PositionSensorVRDevice")}} 表示。** - -The {{domxref("PositionSensorVRDevice")}} object contains the {{domxref("PositionSensorVRDevice.getState","getState()")}} method, which returns a {{domxref("VRPositionState")}} object — this represents the sensor’s state at a given timestamp, and includes properties containing useful data such as current velocity, acceleration, and orientation, useful for updating the rendering of a scene on each frame according to the movement of the VR head mounted display. - -**{{domxref("PositionSensorVRDevice")}} 对象有一个 {{domxref("PositionSensorVRDevice.getState","getState()")}} 方法,该方法返回一个{{domxref("VRPositionState")}} 对象 — 这个对象代表位置传感器在指定时刻的状态,包含了一些十分有用的信息,例如速度、加速度以及运动方向,可用于根据头部运动刷新画面显示。** +连接到电脑的所有 VR 设备都将由 {{domxref("Navigator.getVRDevices()")}} 方法返回。这个方法将返回一个包含了所有已连接设备的对象数组,每个设备对应一个对象,该对象继承自 {{domxref("VRDevice")}}——通常一个头显将包含两个设备——头显自身由 {{domxref("HMDVRDevice")}} 表示,和一个跟踪头部位置的位置捕捉传感器,由 {{domxref("PositionSensorVRDevice")}} 表示。 -The {{domxref("HMDVRDevice.getEyeParameters()")}} method returns a {{domxref("VREyeParameters")}} object, which can be used to return field of view information — how much of the scene the head mounted display can see. The {{domxref("VREyeParameters.currentFieldOfView")}} returns a {{domxref("VRFieldOfView")}} object that contains 4 angles describing the current view from a center point. You can also change the field of view using {{domxref("HMDVRDevice.setFieldOfView()")}}. +{{domxref("PositionSensorVRDevice")}} 对象有一个 {{domxref("PositionSensorVRDevice.getState","getState()")}} 方法,该方法返回一个{{domxref("VRPositionState")}} 对象——这个对象代表位置传感器在指定时刻的状态,包含了一些十分有用的信息,例如速度、加速度以及运动方向,可用于根据头部运动刷新画面显示。 -**{{domxref("HMDVRDevice.getEyeParameters()")}} 方法返回一个 {{domxref("VREyeParameters")}} 对象,可用于获取显示区域的信息 — 头显可以看到多少画面。 {{domxref("VREyeParameters.currentFieldOfView")}} 返回一个 {{domxref("VRFieldOfView")}} 对象,该对象包含了 4 个角度信息来描述当前的显示区域。你可以用 {{domxref("HMDVRDevice.setFieldOfView()")}} 来改变当前的显示区域。** +{{domxref("HMDVRDevice.getEyeParameters()")}} 方法返回一个 {{domxref("VREyeParameters")}} 对象,可用于获取显示区域的信息——头显可以看到多少画面。 {{domxref("VREyeParameters.currentFieldOfView")}} 返回一个 {{domxref("VRFieldOfView")}} 对象,该对象包含了 4 个角度信息来描述当前的显示区域。你可以用 {{domxref("HMDVRDevice.setFieldOfView()")}} 来改变当前的显示区域。 -> **备注:** To find out more about using these interfaces in your own app, read [Using the WebVR API](/zh-CN/docs/Web/API/WebVR_API/Using_the_WebVR_API). To learn more about the basic concepts behind VR, read [WebVR concepts](/zh-CN/docs/Web/API/WebVR_API/WebVR_concepts). -> -> 注释:要了解更多关于如何在你的应用程序中使用这些接口,请阅读文章[Using the WebVR API](/zh-CN/docs/Web/API/WebVR_API/Using_the_WebVR_API). 要学习更多关于 VR 技术背后的基础概念,请阅读文章 [WebVR concepts](/zh-CN/docs/Web/API/WebVR_API/WebVR_concepts). - -### Using controllers: Combining WebVR with the Gamepad API +> **备注:** 要了解更多关于如何在你的应用程序中使用这些接口,请阅读文章[使用 WebVR API](/zh-CN/docs/Web/API/WebVR_API/Using_the_WebVR_API)。要学习更多关于 VR 技术背后的基础概念,请阅读文章 [WebVR 概念](/zh-CN/docs/Web/API/WebVR_API/WebVR_concepts)。 ### 使用控制器:将 WebVR 与 Gamepad API 相结合 @@ -40,44 +28,28 @@ Many WebVR hardware setups feature controllers that go along with the headset. T ## WebVR 接口 - {{domxref("Navigator.getVRDevices")}} - - : Returns a promise that resolves to an array of objects representing the VR devices attached to the computer. - **返回一个 Promise 对象,并通过 resolve 方式返回参数,参数为链接到电脑的 VR 设备数组。** + - : 返回一个会兑现连接到电脑的 VR 设备数组的 promise。 - {{domxref("VRDevice")}} - - : A generic VR device, includes information such as device IDs and descriptions. Inherited by `HMDVRDevice` and `PositionSensorVRDevice`. - **返回一个包括了 VR 设备 IDs,描述等信息的类。HMDVRDevice 和 PositionSensorVRDevice 继承了 VRDevice。** + - : 返回一个包括了 VR 设备 IDs,描述等信息的类。由 `HMDVRDevice` 和 `PositionSensorVRDevice` 继承。 - {{domxref("HMDVRDevice")}} - - : Represents a head mounted display, providing access to information about each eye, and the current field of view. - **头戴设备。提供设备双眼、当前 FOV(field of view)信息。** + - : 头戴设备。提供设备双眼、当前视野(FOV)信息。 - {{domxref("PositionSensorVRDevice")}} - - : Represents the position sensor for the VR hardware, allowing access to information such as position and orientation. - **VR 设备的位置传感器。获取位置、方向信息。** + - : VR 设备的位置传感器。获取位置、方向信息。 - {{domxref("VRPose")}} - - : Represents the position state at a given timestamp (which includes orientation, position, velocity, and acceleration.) - **根据一个时间戳返回包括(方向、位置、速度、加速度)的状态。** + - : 根据一个时间戳返回包括(方向、位置、速度、加速度)的状态。 - {{domxref("VREyeParameters")}} - - : Provides access to all the information required to correctly render a scene for each given eye, including field of view information. - **给双眼提供正确渲染场景的所有信息,包括 FOV。** + - : 给双眼提供正确渲染场景的所有信息,包括 FOV。 - {{domxref("VRFieldOfView")}} - - : Represents a field of view defined by 4 different degree values describing the view from a center point. - **返回以视窗的中心点为基点的,表示 FOV 的 4 个角度值(downDegrees, leftDegrees, rightDegrees, upDegrees)。** + - : 返回以视窗的中心点为基点的,表示 FOV 的 4 个角度值(downDegrees, leftDegrees, rightDegrees, upDegrees)。 - {{domxref("VRFieldOfViewReadOnly")}} - - : Contains the raw definition for the degree value properties required to define a field of view. Inherited by `VRFieldOfView`. - **定义一个 FOV 必须的角度属性。VRFieldOfView 继承了 VRFieldOfViewReadOnly。** + - : 定义一个 FOV 必须的角度属性。由 `VRFieldOfView` 继承。 ## 示例 -**【K】** - -You can find a number of examples at these Github repos: +你可以在 Github 的协议中找到一系列的案例: -**你可以在 Github 的协议中找到一系列的案例:** - -- [mdn/webvr-tests](https://github.com/mdn/webvr-tests): Simple demos built to illiustrate basic feature usage. -- **[mdn/webvr-tests](https://github.com/mdn/webvr-tests): 简单构建的 demos 用于阐明基本的使用方法。** -- -- [MozVR team](https://github.com/MozVR/): More advanced demos, the WebVR spec source, and more! -- **[MozVR team](https://github.com/MozVR/): 更多复杂的 demos,关于 WebVR 特别的资源,以及更多的内容!** -- **【K】** +- [mdn/webvr-tests](https://github.com/mdn/webvr-tests):简单构建的演示用于阐明基本的使用方法。 +- [MozVR team](https://github.com/MozVR/):更多复杂的演示,关于 WebVR 特别的资源,以及更多的内容! ## 规范 @@ -89,19 +61,12 @@ You can find a number of examples at these Github repos: {{Compat}} -## 相关文章 - -- [WebVR environment setup](/zh-CN/docs/Web/API/WebVR_API/WebVR_environment_setup) -- **建立 WEBVR 的运行环境。** -- [WebVR concepts](/zh-CN/docs/Web/API/WebVR_API/WebVR_concepts) -- **WEBVR 的相关概念。** -- [Using the WebVR API](/zh-CN/docs/Web/API/WebVR_API/Using_the_WebVR_API) -- **怎样使用 WEBVR API。** -- [MozVr.com](http://mozvr.com/) — demos, downloads, and other resources from the Mozilla VR team. -- **[MozVr.com](http://mozvr.com/) — demos,下载,以及其他的来自 MOZILLA VR 团队的资源。** -- [Console Game on Web](http://dsmu.me/ConsoleGameOnWeb/) — a collection of interesting game concept demos, some of which include WebVR. -- **[Console Game on Web](http://dsmu.me/ConsoleGameOnWeb/) — 一系列有趣的概念游戏 DEMO 的收集,其中有些包括了 WEBVR。** -- [threejs-vr-boilerplate](https://github.com/MozVR/vr-web-examples/tree/master/threejs-vr-boilerplate) — a very useful starter template for writing WebVR apps into. -- **[threejs-vr-boilerplate](https://github.com/MozVR/vr-web-examples/tree/master/threejs-vr-boilerplate) — 一个当你编写 WEBVR APP 时,非常有用的用于开始编程的模板。** -- [Oculus Rift homepage](https://developer.oculus.com/) -- **[Oculus Rift](https://developer.oculus.com/) 主页** +## 参见 + +- [建立 WebVR 的运行环境](/zh-CN/docs/Web/API/WebVR_API/WebVR_environment_setup) +- [WebVR 的相关概念](/zh-CN/docs/Web/API/WebVR_API/WebVR_concepts) +- [怎样使用 WebVR API](/zh-CN/docs/Web/API/WebVR_API/Using_the_WebVR_API) +- [MozVr.com](http://mozvr.com/)——演示、下载,以及其他的来自 MOZILLA VR 团队的资源。 +- [Console Game on Web](http://dsmu.me/ConsoleGameOnWeb/)——一系列有趣的概念游戏演示的集合,其中有些包括了 WebVR。 +- [threejs-vr-boilerplate](https://github.com/MozVR/vr-web-examples/tree/master/threejs-vr-boilerplate)——一个当你编写 WebVR APP 时,非常有用的用于开始编程的模板。 +- [Oculus Rift 主页](https://developer.oculus.com/) diff --git a/files/zh-cn/web/api/window/ondragdrop/index.md b/files/zh-cn/web/api/window/ondragdrop/index.md index 41b7538bd9020a..0beff2188f5736 100644 --- a/files/zh-cn/web/api/window/ondragdrop/index.md +++ b/files/zh-cn/web/api/window/ondragdrop/index.md @@ -9,45 +9,44 @@ slug: Web/API/Window/ondragdrop 一个事件处理程序,用于将拖放事件发送到窗口。 -**语法** +## 语法 -``` +```js-nolint window.ondragdrop = funcRef; window.addEventListener("dragdrop", funcRef, useCapturing); ``` -- funcRef +- `funcRef` - : 要注册的事件处理函数。 -[Gecko](/zh-CN/docs/Web/API/Window/en/Gecko)([Firefox bug 112288](https://bugzil.la/112288)) 中未实现`window.ondragdrop`属性和`ondragdrop`属性,你必须使用`addEventListener`。有关详细信息,请参见[addEventListener](/zh-CN/docs/Web/API/Window/en/DOM/element.addEventListener)。 +Firefox 中未实现 `window.ondragdrop` 属性和 `ondragdrop` 属性([Firefox bug 112288](https://bugzil.la/112288)),你必须使用 `addEventListener`。有关详细信息,请参见 [addEventListener](/zh-CN/docs/Web/API/EventTarget/addEventListener)。 -**示例** +## 示例 ### 在拖放时触发 alert 在此示例中,事件侦听器被添加到窗口(事件目标)。如果从外部源将选项卡,链接,标记的文本或文件拖放到此窗口上,则会触发警报。注意`event.stopPropagation()`; 阻止浏览器加载放置的标签,链接或文件。 -``` +```html -dragdroptest - - - - - -I am bodytext - + + dragdroptest + + + + + I am bodytext + ``` -**规范** +## 规范 不属于规范部分。 diff --git a/files/zh-cn/web/api/xmldocument/index.md b/files/zh-cn/web/api/xmldocument/index.md index 7e78a965fd5926..6026793331e6ca 100644 --- a/files/zh-cn/web/api/xmldocument/index.md +++ b/files/zh-cn/web/api/xmldocument/index.md @@ -11,11 +11,11 @@ The **XMLDocument** interface represents an XML document. It inherits from the g ## 属性 -_Also inherits properties from: {{DOMxRef("Document")}}_ +_Also inherits properties from: {{DOMxRef("Document")}}._ ## 方法 -_Also inherits methods from: {{DOMxRef("Document")}}_ +_Also inherits methods from: {{DOMxRef("Document")}}._ ## 规范 diff --git a/files/zh-cn/web/css/css_generated_content/index.md b/files/zh-cn/web/css/css_generated_content/index.md index d30ebbf70b7c69..8730f83822a0c8 100644 --- a/files/zh-cn/web/css/css_generated_content/index.md +++ b/files/zh-cn/web/css/css_generated_content/index.md @@ -5,7 +5,7 @@ slug: Web/CSS/CSS_generated_content {{CSSRef}} -**CSS Generated Content 是 CSS 其中一个模块,定义了如何给一个元素添加内容** +CSS 生成内容(Generated Content)是 CSS 其中一个模块,定义了如何给一个元素添加内容。 ## 参考 diff --git a/files/zh-cn/web/css/overscroll-behavior-y/index.md b/files/zh-cn/web/css/overscroll-behavior-y/index.md index ca748ef5d3d12a..84576b26136ab5 100644 --- a/files/zh-cn/web/css/overscroll-behavior-y/index.md +++ b/files/zh-cn/web/css/overscroll-behavior-y/index.md @@ -46,7 +46,7 @@ overscroll-behavior-y: unset; ## 示例 -### 阻止底部元素在垂直方向上滚动。 +### 阻止底部元素在垂直方向上滚动 ```css .messages { diff --git a/files/zh-cn/web/http/headers/permissions-policy/index.md b/files/zh-cn/web/http/headers/permissions-policy/index.md index b4ec73e22af696..d7ab2fb9f9005a 100644 --- a/files/zh-cn/web/http/headers/permissions-policy/index.md +++ b/files/zh-cn/web/http/headers/permissions-policy/index.md @@ -19,20 +19,16 @@ slug: Web/HTTP/Headers/Permissions-Policy Permissions-Policy: ``` -**\** +- `` -- `*`: 允许在当前文档和所有包含的内容(比如 iframes)中使用本特性。 -- `'self'`: 允许在当前文档中使用本特性,但在包含的内容(比如 iframes)仍使用原值。 -- `'src'`: (只在 iframe 中允许) 只要在{{HTMLElement('iframe','src','#Attributes')}} 中的 URL 和加载 iframe 用的 URL 相同,则本特性在 iframe 中允许, -- `'none'`: 从最上层到包含的内容都禁止本特性。 \: 在特定的源中允许,源 URL 以空格分割。 + - : 一个来源列表,在括号中包含的以下一个或多个值,并用空格分隔: - + - `*`: 允许在当前文档和所有包含的内容(比如 iframes)中使用本特性。 + - `'self'`: 允许在当前文档中使用本特性,但在包含的内容(比如 iframes)仍使用原值。 + - `'src'`: (只在 iframe 中允许) 只要在{{HTMLElement('iframe','src','#Attributes')}} 中的 URL 和加载 iframe 用的 URL 相同,则本特性在 iframe 中允许, + - `'none'`: 从最上层到包含的内容都禁止本特性。 \: 在特定的源中允许,源 URL 以空格分割。 -- `*`: 本特性默认在最上层和包含的内容中(iframes)允许。 -- `'self'`: 本特性默认在最上层允许,而包含的内容中(iframes)使用源地址相同设定。也就是说本特性在 iframe 中不允许跨域访问。 -- `'none'`: 本特性默认在最上层和包含的内容中(iframes)都禁止。 - -`*`(在所有源地址启用)`或'none'`(在所有源地址禁用) 只允许单独使用,而`'self'`和`'src'`可以与多个源地址一起使用。 +`*` 或 `none` 值只允许单独使用,而 `self` 和 `src` 值可以与多个源一起使用。 所有的特性都有一个如下的默认的 allowlist diff --git a/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.md b/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.md index 4bd2f37d2090aa..8860f2e651493e 100644 --- a/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.md +++ b/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.md @@ -316,7 +316,7 @@ myIpAddress() #### 参数 -**(无)** +无。 获取当前 Firefox 所在设备的 IP 地址,并返回为标准格式的 IP 地址字符串。 diff --git a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md index d4be73311020e5..baedf915326fa5 100644 --- a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md +++ b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.md @@ -186,8 +186,6 @@ var var2 = 4; 逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。不过实际上`&&`和`||`返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。逻辑运算符的描述如下。 -**逻辑运算符** - | 运算符 | 范例 | 描述 | | ---------------------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [逻辑与](/zh-CN/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_AND) `(&&`) | `expr1 && expr2` | (逻辑与) 如果 expr1 能被转换为 false,那么返回 expr1;否则,返回`expr2`。因此`,&&`用于布尔值时,当操作数都为 true 时返回 true;否则返回 false. | @@ -505,8 +503,6 @@ if (theDay instanceof Date) { 下表列出了描述符的优先级,从最高到最低。 -**运算符优先级** - | Operator type | Individual operators | | ---------------------- | ----------------------------------------- | | member | `. []` | diff --git a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md b/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md index 0855ab822c4d18..3ea1647f9b7edc 100644 --- a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md +++ b/files/zh-cn/web/javascript/guide/numbers_and_dates/index.md @@ -97,8 +97,6 @@ const notANum = Number.NaN; 下面的表格汇总了数字对象的属性: -**数字的属性** - | 属性 | 描述 | | -------------------------------------- | ----------------------------------------------------------------- | | {{jsxref("Number.MAX_VALUE")}} | 可表示的最大值 | diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/log1p/index.md b/files/zh-cn/web/javascript/reference/global_objects/math/log1p/index.md index 0a640008a81c90..eb606b6c3656bc 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/math/log1p/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/math/log1p/index.md @@ -28,7 +28,7 @@ Math.log1p(x) ![log(x+1)](logx1.jpg) -**示例** +## 示例 ```js Math.log1p(Math.E - 1); // 1 diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.md index 6a641992c3cdc4..9536cb81ac8cec 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.md @@ -154,7 +154,7 @@ console.log(newstr); // Cruz, Maria 这将打印 `'Cruz, Maria'`。 -### 使用內联函数来修改匹配到的字符。 +### 使用内联函数来修改匹配到的字符 在这个例子中,字符串中所有出现的大写字母都被转换为小写,并且在匹配位置前插入一个连字符。重要的是,在将匹配项作为替换返回之前,需要对匹配项进行额外的操作。 diff --git a/files/zh-cn/web/javascript/reference/operators/super/index.md b/files/zh-cn/web/javascript/reference/operators/super/index.md index 4d820e830249d5..2ad98a52f74963 100644 --- a/files/zh-cn/web/javascript/reference/operators/super/index.md +++ b/files/zh-cn/web/javascript/reference/operators/super/index.md @@ -239,7 +239,7 @@ Object.setPrototypeOf(Extended, AnotherBase); console.log(Extended.staticGetX()); //现在打印 "4" ``` -### 设置 super.prop 将在此基础上设置属性。 +### 设置 super.prop 将在此基础上设置属性 设置 `super` 的属性,比如 `super.x = 1`,就像 `Reflect.set(Object.getPrototypeOf(objectLiteral), "x", 1, this)` 的行为。这是一个将 `super` 简单理解为“原型对象的引用”的情况,因为它实际上是在 `this` 上设置属性。 diff --git a/files/zh-cn/web/media/autoplay_guide/index.md b/files/zh-cn/web/media/autoplay_guide/index.md index 8e43d525edc811..61013efb20762f 100644 --- a/files/zh-cn/web/media/autoplay_guide/index.md +++ b/files/zh-cn/web/media/autoplay_guide/index.md @@ -151,8 +151,6 @@ if (startPlayPromise !== undefined) { 在 [Web Audio API](/zh-CN/docs/Web/API/Web_Audio_API) 中,网站或应用程序可以使用链接到 {{domxref("AudioContext")}} 的源节点上的 `start()` 方法开始播放音频。在处理用户输入事件的上下文之外执行此操作受自动播放规则的约束。 -_更多内容即将推出;Mozilla 仍在致力于阻止自动播放。如果其他人已经拥有它,欢迎他们参与本部分……_ - ## 自动播放功能策略 除了上述的浏览器端管理和对自动播放功能的控制之外,web 服务器也可以表示愿意让自动播放功能发挥作用。{{Glossary("HTTP")}} {{HTTPHeader("Permissions-Policy")}} 标头的 [`autoplay`](/zh-CN/docs/Web/HTTP/Headers/Permissions-Policy/autoplay) 指令用于控制哪些域(如果有)可用于自动播放媒体。默认情况下, `autoplay` 功能策略设置为 `'self'`(_包括单引号字符_),表示允许自动播放,因为它们与文档托管在同一域中。 diff --git a/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.md b/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.md index 656128c8d24a22..e8a90eb726eb2d 100644 --- a/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.md +++ b/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.md @@ -15,7 +15,7 @@ Firefox 23 移除了针对 HTML5 WebM 视频的 DASH 实现。此功能将被 [ 首先,你需要将 WebM 视频转换为带有不同比特率的随附视频文件的 DASH 清单。根据你的需求,启动从 [ffmpeg.org](http://www.ffmpeg.org) 的 ffmpeg 程序,就可以使用 libvpx 和 libbvorbis 支持的 WebM 视频和音频(版本 2.5 以上,3.2.5 版本已通过测试)。 -### 1. 使用现有的 WebM 文件创建一个音频文件和多个视频文件。 +### 1. 使用现有的 WebM 文件创建一个音频文件和多个视频文件 例如: diff --git a/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md b/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md index 385b11bbb09a01..090d4d25a3f9fb 100644 --- a/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md +++ b/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md @@ -56,13 +56,13 @@ slug: Web/SVG/Attribute/stroke-dasharray ``` -**示例输出** +### 示例输出 {{ EmbedLiveSample('示例','220','220') }} ## 元素 -下列元素可以使用`stroke-dasharray 属性:` +下列元素可以使用 `stroke-dasharray` 属性: - [形状元素](/zh-CN/SVG/Element#Shape_elements) » - [文本内容元素](/zh-CN/SVG/Element#Text_content_elements) » diff --git a/files/zh-cn/web/svg/attribute/stroke-linecap/index.md b/files/zh-cn/web/svg/attribute/stroke-linecap/index.md index 5953085e517bf1..9b88e516ca1a4c 100644 --- a/files/zh-cn/web/svg/attribute/stroke-linecap/index.md +++ b/files/zh-cn/web/svg/attribute/stroke-linecap/index.md @@ -16,7 +16,7 @@ slug: Web/SVG/Attribute/stroke-linecap | 属性值 | butt \| round \| square \| inherit | | 可动画化 | 是 | -## Example +## 示例 ```html @@ -57,9 +57,7 @@ slug: Web/SVG/Attribute/stroke-linecap ``` -**实时样例** - -{{ EmbedLiveSample('Example','120','120') }} +{{ EmbedLiveSample('示例','120','120') }} ## 元素 diff --git a/files/zh-cn/web/svg/attribute/stroke/index.md b/files/zh-cn/web/svg/attribute/stroke/index.md index 8631dfa7157902..b016fd9b5219f6 100644 --- a/files/zh-cn/web/svg/attribute/stroke/index.md +++ b/files/zh-cn/web/svg/attribute/stroke/index.md @@ -18,7 +18,7 @@ slug: Web/SVG/Attribute/stroke ## SVG 描边的线 -### 示例 1:用 stroke 属性画一条绿色的直线。 +### 示例 1:用 stroke 属性画一条绿色的直线 ```html diff --git a/files/zh-cn/web/svg/attribute/text-anchor/index.md b/files/zh-cn/web/svg/attribute/text-anchor/index.md index ab244bcd9cf8ce..4be1e1c36a6acd 100644 --- a/files/zh-cn/web/svg/attribute/text-anchor/index.md +++ b/files/zh-cn/web/svg/attribute/text-anchor/index.md @@ -62,8 +62,6 @@ slug: Web/SVG/Attribute/text-anchor ``` -**Live sample** - {{ EmbedLiveSample('示例','120','120') }} ## 元素 diff --git a/files/zh-cn/web/svg/element/animatetransform/index.md b/files/zh-cn/web/svg/element/animatetransform/index.md index 106582270df4ea..bf691c18e082e8 100644 --- a/files/zh-cn/web/svg/element/animatetransform/index.md +++ b/files/zh-cn/web/svg/element/animatetransform/index.md @@ -35,8 +35,6 @@ slug: Web/SVG/Element/animateTransform ``` -**示例输出** - {{ EmbedLiveSample('示例','120','120') }} ## 属性 diff --git a/files/zh-cn/web/svg/element/defs/index.md b/files/zh-cn/web/svg/element/defs/index.md index 829924ef1fb34c..508a18be777e8e 100644 --- a/files/zh-cn/web/svg/element/defs/index.md +++ b/files/zh-cn/web/svg/element/defs/index.md @@ -44,7 +44,7 @@ SVG 允许我们定义以后需要重复使用的图形元素。建议把所有 ### 专有属性 -_没有专有属性_ +_没有专有属性。_ ## DOM 接口 @@ -54,6 +54,6 @@ _没有专有属性_ {{Compat}} -## 相关内容 +## 参见 - {{ SVGElement("use") }} diff --git a/files/zh-cn/web/svg/element/desc/index.md b/files/zh-cn/web/svg/element/desc/index.md index e508436a327930..b54655b0349377 100644 --- a/files/zh-cn/web/svg/element/desc/index.md +++ b/files/zh-cn/web/svg/element/desc/index.md @@ -23,7 +23,7 @@ SVG 绘画中的每个容器元素或图形元素都可以提供一个`desc`描 ### 专有属性 -_没有专有属性_ +_没有专有属性。_ ## DOM 接口 diff --git a/files/zh-cn/web/svg/element/fefunca/index.md b/files/zh-cn/web/svg/element/fefunca/index.md index 2182464429287b..9e70f5d065eb5b 100644 --- a/files/zh-cn/web/svg/element/fefunca/index.md +++ b/files/zh-cn/web/svg/element/fefunca/index.md @@ -20,7 +20,7 @@ slug: Web/SVG/Element/feFuncA ### 专有属性 -_无_ +_无。_ ## DOM 接口 diff --git a/files/zh-cn/web/svg/element/femerge/index.md b/files/zh-cn/web/svg/element/femerge/index.md index d7f897cfc1775e..3f3916802fe1ed 100644 --- a/files/zh-cn/web/svg/element/femerge/index.md +++ b/files/zh-cn/web/svg/element/femerge/index.md @@ -25,7 +25,7 @@ slug: Web/SVG/Element/feMerge ### 专有属性 -_无_ +_无。_ ## DOM 接口 diff --git a/files/zh-cn/web/svg/element/font-face-src/index.md b/files/zh-cn/web/svg/element/font-face-src/index.md index 3fced6ffc00f94..c5e4d3241053aa 100644 --- a/files/zh-cn/web/svg/element/font-face-src/index.md +++ b/files/zh-cn/web/svg/element/font-face-src/index.md @@ -21,7 +21,7 @@ slug: Web/SVG/Element/font-face-src ### 专有属性 -_无_ +_无。_ ## DOM 接口 diff --git a/files/zh-cn/web/svg/element/metadata/index.md b/files/zh-cn/web/svg/element/metadata/index.md index 2a3c0203b3fe85..1d6cc3491182ca 100644 --- a/files/zh-cn/web/svg/element/metadata/index.md +++ b/files/zh-cn/web/svg/element/metadata/index.md @@ -21,7 +21,7 @@ slug: Web/SVG/Element/metadata ### 专有属性 -_没有专有属性_ +_没有专有属性。_ ## DOM 接口 diff --git a/files/zh-cn/web/svg/element/title/index.md b/files/zh-cn/web/svg/element/title/index.md index 9d1c93f0b1c7f1..969480f596a499 100644 --- a/files/zh-cn/web/svg/element/title/index.md +++ b/files/zh-cn/web/svg/element/title/index.md @@ -37,7 +37,7 @@ SVG 绘图中的每个窗口元素或图形元素都可以提供一个`title`描 ### 专有属性 -_没有专有属性_ +_没有专有属性。_ ## DOM 接口 diff --git a/files/zh-tw/.markdownlint.jsonc b/files/zh-tw/.markdownlint.jsonc index ef3f5fff9a7fcc..0b1ced60fe026d 100644 --- a/files/zh-tw/.markdownlint.jsonc +++ b/files/zh-tw/.markdownlint.jsonc @@ -1,5 +1,8 @@ { "extends": "../../.markdownlint.jsonc", + "no-trailing-punctuation": { + "punctuation": ".,;:。," + }, "search-replace": { "rules": [ { @@ -84,15 +87,14 @@ "searchPattern": "/\\]\\(https:\\/\\/developer.mozilla.org\\/(?!en-US\\/blog\\/)/g", "replace": "](/", "searchScope": "text" + }, + { + "name": "localhost-links", + "message": "Don't use localhost for links", + "searchPattern": "/\\]\\(https?:\\/\\/localhost:\\d+\\//g", + "replace": "](/", + "searchScope": "text" } - // XXX Many instances still found in translated content - // { - // "name": "localhost-links", - // "message": "Don't use localhost for links", - // "searchPattern": "/\\]\\(https?:\\/\\/localhost:\\d+\\//g", - // "replace": "](/", - // "searchScope": "text" - // } ] } } diff --git a/files/zh-tw/learn/css/howto/css_faq/index.md b/files/zh-tw/learn/css/howto/css_faq/index.md index 0018dd4425c6a6..65090ed01fd66b 100644 --- a/files/zh-tw/learn/css/howto/css_faq/index.md +++ b/files/zh-tw/learn/css/howto/css_faq/index.md @@ -5,7 +5,7 @@ slug: Learn/CSS/Howto/CSS_FAQ {{LearnSidebar}} -#### 我的 CSS 合乎規格,但繪出的版面有誤 +## 我的 CSS 合乎規格,但繪出的版面有誤 如果想讓大部分的瀏覽器都能正確繪製標準 HTML/CSS 頁面,便須於 HTML 檔案中放上完整的正確 DOCTYPE。 @@ -34,7 +34,7 @@ slug: Learn/CSS/Howto/CSS_FAQ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ``` -#### `id` 與 `class` 之間的差別 +## `id` 與 `class` 之間的差別 HTML 元素都可有 `id` 及 `class` 屬性。`id` 屬性是讓你為元素命名的,整個頁面中的元素名稱也不應有重複;`class` 屬性則可將元素歸為某特定類別,通常也會有很多元素屬於同一種類別 (意即 `class` 屬性值相同。) CSS 可以讓你以 `id` 或 `class` 來決定某元素的樣式。 @@ -44,7 +44,7 @@ HTML 元素都可有 `id` 及 `class` 屬性。`id` 屬性是讓你為元素命 這方面的資訊亦可參考 [CSS 選取符](zh_tw/CSS/Getting_Started/Selectors)。 -#### 恢復某特性的預設值 +## 恢復某特性的預設值 CSS2 並不提供任何指定某特性預設值的方法,所以要恢復某特性預設值的唯一方法就是重新指定此值。此外你自己得知道預設值是什麼,因為 CSS 也沒有所謂 _default_ 的關鍵字。 @@ -52,30 +52,33 @@ CSS2 並不提供任何指定某特性預設值的方法,所以要恢復某特 此外,由於 CSS 具*串聯*特性,指定選取符時通常越明確越好,以免把不相干的元素都牽扯進來。 -#### 相依樣式 +## 相依樣式 CSS 並不支援「以另一個樣式規則為基準」的樣式設定法。 (參考 [Eric Meyer 所寫、關於 CSS 工作小組的說明](http://archivist.incutio.com/viewlist/css-discuss/2685)。) 不過,你可以為某單一元素套上多重樣式,製作出類似效果。 -#### 套用多重類別 +## 套用多重類別 你可以在 HTML 元素的 `class` 屬性裡以空白字元分隔填上多個樣式類別名稱,便能同時套用多重類別。 -```plain +```html
-... content ... -... content ... -... content ... +
``` 若是這些規則中設定了同一種特性值,則會依序以明確性(specificity)、定義位置先後決定顯示方式,與`class` 屬性中的次序無關。 -#### 無用樣式 +## 無用樣式 即使樣式規則已經正確設定完畢,還是可能為瀏覽器所忽略,此時通常是經過語法及優先權法則判斷後的正常現象。 @@ -87,26 +90,25 @@ CSS 並不支援「以另一個樣式規則為基準」的樣式設定法。 ( - 使用 `*` 選取符 - CSS 明確性 -你可以使用 [DOM 觀察器](zh_tw/DOM_%e8%a7%80%e5%af%9f%e5%99%a8) 的 _CSS Style Rules_ 來檢查上述問題。 +你可以使用 [DOM 觀察器](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html) 的 _CSS Style Rules_ 來檢查上述問題。 -**HTML 元素層次問題** +### HTML 元素層次問題 此時 CSS 樣式套用與否與元素的層次大有相關,請留意:套用到子元素的樣式必定會蓋過母元素的樣式,跟明確性或 CSS 規則的優先權無關。 -```plain -#section { font-weight: bold; } -.redtext { font-weight: normal; color: red; } +```html +#section { font-weight: bold; } .redtext { font-weight: normal; color: red; }
- 粗體、 - 正常紅字、 - 又見粗體 + 粗體、 + 正常紅字、 + 又見粗體
``` 如果你的 HTML 層級錯綜複雜,發生規則意外被忽略的情形時,請檢查元素層級問題。可能有某個子元素套上了不該用的樣式。 -**樣式規則重新定義** +### 樣式規則重新定義 在 CSS 樣式表中,先後次序**非常**重要。如果你定義了某規則後又重新定義一次,則晚定義的才算數。 @@ -127,7 +129,7 @@ CSS 並不支援「以另一個樣式規則為基準」的樣式設定法。 ( 為避免此類錯誤發生,每個特定選取符請僅定義一次樣式,集中特性一次定義也便於管理些。 -**特性的簡寫法** +### 特性的簡寫法 使用簡寫法來定義樣式簡明扼要,是個不錯的方法。你也可以用簡寫法設定某組特性中的部分特性值,但須留意其他沒寫到的部分會自動採用預設值。這表示之前的規則中為某單一特性定義的值可能失效。 @@ -144,14 +146,14 @@ CSS 並不支援「以另一個樣式規則為基準」的樣式設定法。 ( 前一個例子中,套用到不同元素範圍的同族特性是問題所在,但就算特性都寫在同一條規則裡也可能出問題,因為順序**真的**很重要。 -```plain +```css #section { - font-weight: bold; - font: 12px Verdana; /* 有了這行,font-weight 又回到預設的 normal 了 */ + font-weight: bold; + font: 12px Verdana; /* 有了這行,font-weight 又回到預設的 normal 了 */ } ``` -**使用 `*` 選取符** +### 使用 `*` 選取符 `*` 選取符表示任何元素皆符合,但使用上應多加小心。 @@ -172,7 +174,7 @@ body * { font-weight: normal; } 在此例中,選取符為 `body *` 的規則會套用到所有 `body` 內的元素,也包括 _redtext_,所以原先套用到 _boldtext_ 的 `font-weight: bold;` 就被覆蓋為 `font-weight: normal;` 了。 -**CSS 明確性** +### CSS 明確性 如果某元素會套用好幾條規則,則相衝突的特性就要靠規則的明確性來分高下。行內樣式(放在 HTML 各標籤的 `style` 屬性中)優先權最高,其次是以 `id` 做選取符的規則,再其次是以 `class` 套用的類別,最後則是單純以元素名稱當選取符的規則。 @@ -186,6 +188,6 @@ div { color: black; } 如果樣式規則的選取符分成好幾段,計算方式就更為複雜一些。需要瞭解完整資訊者,請參考 [CSS 2.1 規格書的 6.4.3 一節](https://www.w3.org/TR/CSS21/cascade.html#specificity)。 -#### -moz-\* 特性是什麼玩意? +## -moz-\* 特性是什麼玩意? -請見 [Mozilla 擴充的 CSS](zh_tw/Mozilla_%e6%93%b4%e5%85%85%e7%9a%84_CSS)。由於這些擴充規格不是 W3C 標準的一部分,因此並不建議使用。 +請見 [Mozilla 擴充的 CSS](/zh-TW/docs/Web/CSS/Mozilla_Extensions)。由於這些擴充規格不是 W3C 標準的一部分,因此並不建議使用。 diff --git a/files/zh-tw/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md b/files/zh-tw/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md index b0ff56006dbdb5..e66cce47e87ecb 100644 --- a/files/zh-tw/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md +++ b/files/zh-tw/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md @@ -46,7 +46,7 @@ slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension 然而,你也可以先載入一個後台頁面,然後在後台頁面中載入腳本。這樣的做法能為後台腳本提供 ES 6 模組的支援,算是一个優點。 -**manifest.json** +manifest.json: ```json // manifest.json @@ -56,7 +56,7 @@ slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension } ``` -**background-page.html** +background-page.html: ```html diff --git a/files/zh-tw/web/api/canvas_api/tutorial/basic_animations/index.md b/files/zh-tw/web/api/canvas_api/tutorial/basic_animations/index.md index e9e094aa0f8a4d..60935adab38189 100644 --- a/files/zh-tw/web/api/canvas_api/tutorial/basic_animations/index.md +++ b/files/zh-tw/web/api/canvas_api/tutorial/basic_animations/index.md @@ -334,7 +334,7 @@ function draw() { ``` -**Live sample** +##### 結果 {{EmbedLiveSample("循環景色", "830", "230")}} diff --git a/files/zh-tw/web/api/customevent/index.md b/files/zh-tw/web/api/customevent/index.md index f06d074ff00be7..ef1360710a6b40 100644 --- a/files/zh-tw/web/api/customevent/index.md +++ b/files/zh-tw/web/api/customevent/index.md @@ -18,7 +18,7 @@ slug: Web/API/CustomEvent ## 屬性 -_此介面繼承了其父介面 {{domxref("Event")}} 的屬性_ +_此介面繼承了其父介面 {{domxref("Event")}} 的屬性。_ - {{domxref("CustomEvent.initCustomEvent()")}} {{deprecated_inline}} - : 初始化一個`CustomEvent`物件。若該事件已經被觸發,則不會進行任何動作。 @@ -31,7 +31,7 @@ _此介面繼承了其父介面 {{domxref("Event")}} 的屬性_ {{Compat}} -## 延伸閱讀 +## 參見 - {{domxref("Window.postMessage()")}} - [Creating and triggering events](/zh-TW/docs/Web/Events/Creating_and_triggering_events) diff --git a/files/zh-tw/web/api/documentfragment/index.md b/files/zh-tw/web/api/documentfragment/index.md index a0f8108dd58ab3..2c6bf39d18c3f3 100644 --- a/files/zh-tw/web/api/documentfragment/index.md +++ b/files/zh-tw/web/api/documentfragment/index.md @@ -33,7 +33,7 @@ _This interface has no specific properties, but inherits those of its parent,_ _ ## 方法 -_This interface inherits the methods of its parent, {{domxref("Node")}}, and implements those of the {{domxref("ParentNode")}} interface*.*_ +_This interface inherits the methods of its parent, {{domxref("Node")}}, and implements those of the {{domxref("ParentNode")}} interface._ - {{domxref("DocumentFragment.find()")}} {{experimental_inline}} - : Returns the first matching {{domxref("Element")}} in the tree of the `DocumentFragment`. diff --git a/files/zh-tw/web/api/keyboardevent/index.md b/files/zh-tw/web/api/keyboardevent/index.md index bfe4740f8d19b8..4a182582229fd9 100644 --- a/files/zh-tw/web/api/keyboardevent/index.md +++ b/files/zh-tw/web/api/keyboardevent/index.md @@ -9,14 +9,14 @@ slug: Web/API/KeyboardEvent > **備註:** `KeyboardEvent` 僅顯示在鍵盤上發生的事。當你需要進行文字輸入的操作,請使用 HTML5 [`input`](/zh-TW/docs/DOM/DOM_event_reference/input) event 代替 `KeyboardEvent` 。舉例來說,當使用者在手寫系統,例如平板電腦,輸入文字時,並不會啟動 key events 。 -## Constructor +## 建構子 - {{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}} - - : 建立一 `KeyboardEvent` object。 + - : 建立一 `KeyboardEvent` 物件。 -## Methods +## 方法 -_本介面( interface)亦繼承其父, {{domxref("UIEvent")}} 和 {{domxref("Event")}} ,的 methods_ +_本介面(interface)亦繼承其父 {{domxref("UIEvent")}} 和 {{domxref("Event")}} 的方法。_ - {{domxref("KeyboardEvent.getModifierState()")}} - : 回傳一 {{jsxref("Boolean")}}。用來表示當事件建立時,修飾鍵(例如 AltShiftCtrl、或是 Meta) 是否是按下的。 diff --git a/files/zh-tw/web/javascript/guide/using_promises/index.md b/files/zh-tw/web/javascript/guide/using_promises/index.md index e67c2ad8e90d58..73fa4741a34395 100644 --- a/files/zh-tw/web/javascript/guide/using_promises/index.md +++ b/files/zh-tw/web/javascript/guide/using_promises/index.md @@ -71,8 +71,6 @@ let promise2 = doSomething().then(successCallback, failureCallback); 在古時候,多個非同步函數會使用 Callback 方式,導致波動拳問題: -_(原文 Pyramid of Doom 查無中文翻譯,以較常見之波動拳取代)_ - ```js doSomething(function (result) { doSomethingElse( diff --git a/files/zh-tw/web/javascript/reference/global_objects/array/index.md b/files/zh-tw/web/javascript/reference/global_objects/array/index.md index 546eeaa6199fe4..28f4815b421db5 100644 --- a/files/zh-tw/web/javascript/reference/global_objects/array/index.md +++ b/files/zh-tw/web/javascript/reference/global_objects/array/index.md @@ -7,112 +7,9 @@ slug: Web/JavaScript/Reference/Global_Objects/Array JavaScript 中的 **`Array`** 全域物件被用於建構陣列;陣列為高階(high-level)、似列表(list-like)的物件。陣列在 Javascript 裡面並沒有固定的長度與型別。由於陣列的長度可以隨時被改變,所以並不能保證陣列的密度。這取決於開發者如何使用陣列。一般來說,這是個非常方便的特性,但如果這並不適用於你的開發工作,你也許會考慮使用型別陣列。 -**建立陣列** - -```js -var fruits = ["Apple", "Banana"]; - -console.log(fruits.length); -// 2 -``` - -**(透過索引)取得陣列項目** - -```js -var first = fruits[0]; -// Apple - -var last = fruits[fruits.length - 1]; -// Banana -``` - -**迭代陣列** - -```js -fruits.forEach(function (item, index, array) { - console.log(item, index); -}); -// Apple 0 -// Banana 1 -``` - -**加入項目至陣列末端** - -```js -var newLength = fruits.push("Orange"); -// ["Apple", "Banana", "Orange"] -``` - -**移除陣列末端項目** - -```js -var last = fruits.pop(); // 移除 (最末端的) Orange -// ["Apple", "Banana"]; -``` - -**移除陣列前端項目** - -```js -var first = fruits.shift(); // 移除 (最前端的) Apple -// ["Banana"]; -``` - -**加入項目至陣列前端** - -```js -var newLength = fruits.unshift("Strawberry"); // 加到陣列前端 -// ["Strawberry", "Banana"]; -``` - -**在陣列中尋找項目的索引** - -```js -fruits.push("Mango"); -// ["Strawberry", "Banana", "Mango"] - -var pos = fruits.indexOf("Banana"); -// 1 -``` - -**移除指定索引位置的項目** - -```js -var removedItem = fruits.splice(pos, 1); // 移除 pos 起的 1 個項目 - -// ["Strawberry", "Mango"] -``` - -**移除指定索引位置起的多個項目** - -```js -var vegetables = ["Cabbage", "Turnip", "Radish", "Carrot"]; -console.log(vegetables); -// ["Cabbage", "Turnip", "Radish", "Carrot"] - -var pos = 1, - n = 2; - -var removedItems = vegetables.splice(pos, n); -// 這就是移除項目的方式, -// n 表示從該位置 (pos) 開始,一直到陣列的尾端有多少項目需要移除 - -console.log(vegetables); -// ["Cabbage", "Carrot"] (原始的陣列被改變) - -console.log(removedItems); -// ["Turnip", "Radish"] -``` - -**複製陣列** - -```js -var shallowCopy = fruits.slice(); // 這就是複製陣列的方式 -// ["Strawberry", "Mango"] -``` - ## 語法 -```plain +```js-nolint [element0, element1, ..., elementN] new Array(element0, element1[, ...[, elementN]]) new Array(arrayLength) @@ -362,6 +259,100 @@ if (msgArray.length === 100) { } ``` +### (透過索引)取得陣列項目 + +```js +var first = fruits[0]; +// Apple + +var last = fruits[fruits.length - 1]; +// Banana +``` + +### 迭代陣列 + +```js +fruits.forEach(function (item, index, array) { + console.log(item, index); +}); +// Apple 0 +// Banana 1 +``` + +### 加入項目至陣列末端 + +```js +var newLength = fruits.push("Orange"); +// ["Apple", "Banana", "Orange"] +``` + +### 移除陣列末端項目 + +```js +var last = fruits.pop(); // 移除(最末端的)Orange +// ["Apple", "Banana"]; +``` + +### 移除陣列前端項目 + +```js +var first = fruits.shift(); // 移除(最前端的)Apple +// ["Banana"]; +``` + +### 加入項目至陣列前端 + +```js +var newLength = fruits.unshift("Strawberry"); // 加到陣列前端 +// ["Strawberry", "Banana"]; +``` + +### 在陣列中尋找項目的索引 + +```js +fruits.push("Mango"); +// ["Strawberry", "Banana", "Mango"] + +var pos = fruits.indexOf("Banana"); +// 1 +``` + +### 移除指定索引位置的項目 + +```js +var removedItem = fruits.splice(pos, 1); // 移除 pos 起的 1 個項目 + +// ["Strawberry", "Mango"] +``` + +### 移除指定索引位置起的多個項目 + +```js +var vegetables = ["Cabbage", "Turnip", "Radish", "Carrot"]; +console.log(vegetables); +// ["Cabbage", "Turnip", "Radish", "Carrot"] + +var pos = 1, + n = 2; + +var removedItems = vegetables.splice(pos, n); +// 這就是移除項目的方式, +// n 表示從該位置開始,一直到陣列的尾端有多少項目需要移除 + +console.log(vegetables); +// ["Cabbage", "Carrot"](原始的陣列被改變) + +console.log(removedItems); +// ["Turnip", "Radish"] +``` + +### 複製陣列 + +```js +var shallowCopy = fruits.slice(); // 這就是複製陣列的方式 +// ["Strawberry", "Mango"] +``` + ### 建立二維陣列 以下範例會用字串產生一張西洋棋盤的二維陣列。第一步是將士兵 'p' 從 (6,4) 移動至 (4,4),然後清空原本的位置 (6,4)。 diff --git a/files/zh-tw/web/javascript/reference/global_objects/array/indexof/index.md b/files/zh-tw/web/javascript/reference/global_objects/array/indexof/index.md index 2b3166eb236436..a30e258087c633 100644 --- a/files/zh-tw/web/javascript/reference/global_objects/array/indexof/index.md +++ b/files/zh-tw/web/javascript/reference/global_objects/array/indexof/index.md @@ -62,7 +62,7 @@ console.log(indices); // [0, 2, 4] ``` -### 尋找元素是否存在於陣列中,若沒有則加入到陣列裡。 +### 尋找元素是否存在於陣列中,若沒有則加入到陣列裡 ```js function updateVegetablesCollection(veggies, veggie) { diff --git a/files/zh-tw/web/javascript/reference/statements/continue/index.md b/files/zh-tw/web/javascript/reference/statements/continue/index.md index da00270970523b..4f82c520144e32 100644 --- a/files/zh-tw/web/javascript/reference/statements/continue/index.md +++ b/files/zh-tw/web/javascript/reference/statements/continue/index.md @@ -3,6 +3,8 @@ title: continue 語法 slug: Web/JavaScript/Reference/Statements/continue --- +{{jsSidebar("Statements")}} + `continue` 語法可用來重新開始 `while`、`do-while`、`for`、`label` 語法。 - 當你使用沒加標籤的 `continue` 時,他會終止這一次的最內層的 `while`、`do-while`、`for` 語法的反覆過程,並繼續執行下一次的反覆過程。與 `break` 語法相較之下,`continue` 不會終止整個循環的執行。在 `while` 循環中,他會跳回條件處。在 `for` 循環中,他會跳回遞增表達式。 @@ -13,7 +15,7 @@ slug: Web/JavaScript/Reference/Statements/continue 1. `continue` 2. `continue label` -**範例 1** +## 範例 1 以下範例示範加上 `continue` 語法的 `while` 循環,`continue` 語法會在 `i` 值為 3 時執行。因此,`n` 的值依序為 1、3、7、12。 @@ -27,7 +29,7 @@ while (i < 5) { } ``` -**範例 2** +## 範例 2 已加上標籤的語法 `checkiandj` 內含已加上標籤的語法 `checkj`。如果遇到 `continue`,程式會終止 `checkj` 這一次的反覆過程,並開始下一次的反覆過程。每當遇到 `continue`,就會反覆執行 `checkj` 直到他的條件返回 false 為止。當返回 false 時,`checkiandj` 語句完成了餘數的計算,且 `checkiandj` 會反覆執行,直到他的條件返回為 false 為止。當返回 false 時,程式繼續執行 `checkiandj` 後面的語句。 @@ -47,5 +49,3 @@ checkiandj: while (i < 4) { document.write("j = " + j + "
"); } ``` - -{{ PreviousNext("Core_JavaScript_1.5_教學:循環語法:break_語法", "Core_JavaScript_1.5_教學:物件的操作語法") }} diff --git a/files/zh-tw/web/javascript/reference/statements/do...while/index.md b/files/zh-tw/web/javascript/reference/statements/do...while/index.md index 006da95381d8d3..b144874e05b115 100644 --- a/files/zh-tw/web/javascript/reference/statements/do...while/index.md +++ b/files/zh-tw/web/javascript/reference/statements/do...while/index.md @@ -15,7 +15,7 @@ while (condition); `statement` 會在檢測條件之前就先執行一次。若要執行多個語句,就使用區塊語法(`{ ... }`)把語句群組化。如果 `condition` 為 true,就會再執行一次語句。每回執行以後,就會檢測條件。當條件為 false 時,就停止執行並把控制權轉移給 `do...while` 後面的語句。 -**範例** +## 範例 在以下範例中,do 循環至少會反覆執行一次,並一直反覆到 i 不再小於 5 為止。 diff --git a/files/zh-tw/web/javascript/reference/statements/for/index.md b/files/zh-tw/web/javascript/reference/statements/for/index.md index 426bd96d3871e4..379b1daa093077 100644 --- a/files/zh-tw/web/javascript/reference/statements/for/index.md +++ b/files/zh-tw/web/javascript/reference/statements/for/index.md @@ -16,7 +16,7 @@ for ([initialExpression]; [condition]; [incrementExpression]) statement; 3. 執行 `statement`。若要執行多個語句,就使用區塊語法(`{ ... }`)把這些語句群組化。 4. 執行更新表達式 `incrementExpression`,並回到第 2 步驟。 -**範例** +## 範例 以下函數內含 `for` 語法,計數至下拉式選單的已選擇選項的數目為止(Select 物件允許複選)。`for` 語法宣告變數 `i` 並以 0 初始化。他會檢驗 `i` 是否小於 `Select` 物件的選項數目,持續執行 `if` 語句,並在每一次循環之後以 1 遞增 `i`。