From 1ad19bb820b5154c8ef5532bd7290ec191cf7ffe Mon Sep 17 00:00:00 2001 From: A1lo Date: Sun, 26 Nov 2023 21:09:42 +0800 Subject: [PATCH 01/55] zh-cn: update the translation of scrollIntoViewIfNeeded() (#17106) --- .../element/scrollintoviewifneeded/index.md | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/files/zh-cn/web/api/element/scrollintoviewifneeded/index.md b/files/zh-cn/web/api/element/scrollintoviewifneeded/index.md index 86d097d07bcd9d..4b5f5efdd407a3 100644 --- a/files/zh-cn/web/api/element/scrollintoviewifneeded/index.md +++ b/files/zh-cn/web/api/element/scrollintoviewifneeded/index.md @@ -1,42 +1,46 @@ --- -title: Element.scrollIntoViewIfNeeded() +title: Element:scrollIntoViewIfNeeded() 方法 slug: Web/API/Element/scrollIntoViewIfNeeded +l10n: + sourceCommit: bbf7f25f9cf95fb154e2740a9fdc9c02818981bf --- {{APIRef("DOM")}}{{Non-standard_header}} -**`Element.scrollIntoViewIfNeeded()`**方法用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。此方法是标准的[Element.scrollIntoView()](/zh-CN/docs/Web/API/Element/scrollIntoView)方法的专有变体。 +**`Element.scrollIntoViewIfNeeded()`** 方法将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。此方法是标准的 [`Element.scrollIntoView()`](/zh-CN/docs/Web/API/Element/scrollIntoView) 方法的专有变体。 ## 语法 -```plain -element.scrollIntoViewIfNeeded(); // 等同于 element.scrollIntoViewIfNeeded(true) -element.scrollIntoViewIfNeeded(true); -element.scrollIntoViewIfNeeded(false); +```js-nolint +scrollIntoViewIfNeeded() +scrollIntoViewIfNeeded(centerIfNeeded) ``` ### 参数 -- _`opt_center`_ +- `centerIfNeeded` {{optional_inline}} - - : 一个 {{jsxref("Boolean")}} 类型的值,默认为`true`: + - : 一个可选的布尔值,默认为`true`: - - 如果为 true,则元素将在其所在滚动区的可视区域中居中对齐。 - - 如果为 false,则元素将与其所在滚动区的可视区域最近的边缘对齐。根据可见区域最靠近元素的哪个边缘,元素的顶部将与可见区域的顶部边缘对准,或者元素的底部边缘将与可见区域的底部边缘对准。 + - 如果为 `true`,则元素将在其所在滚动区的可视区域中居中对齐。 + - 如果为 `false`,则元素将与其所在滚动区的可视区域最近的边缘对齐。根据可见区域最靠近元素的哪个边缘,元素的顶部将与可见区域的顶部边缘对准,或者元素的底部边缘将与可见区域的底部边缘对准。 + +### 返回值 + +无({{jsxref("undefined")}})。 ## 示例 -```plain -var element = document.getElementById("child"); +```js +const element = document.getElementById("my-el"); -element.scrollIntoViewIfNeeded(); -element.scrollIntoViewIfNeeded(true); -element.scrollIntoViewIfNeeded(false); +element.scrollIntoViewIfNeeded(); // 将元素置于可见区域的中心 +element.scrollIntoViewIfNeeded(false); // 将元素与可见区域中最近的边缘对齐 ``` ## 规范 -不属于任何规范,是一种 WebKit 专有的方法。 +不属于任何规范。这是一种 WebKit 专有的方法。 ## 浏览器兼容性 @@ -44,4 +48,4 @@ element.scrollIntoViewIfNeeded(false); ## 参见 -- [W3C CSSOM bug 17152: Support centering an element when scrolling into view.](https://www.w3.org/Bugs/Public/show_bug.cgi?id=17152) (一个等同于 scrollIntoViewIfNeeded 的标准功能特性) +- [W3C CSSOM bug 17152:支持在元素滚动入视图时将其居中。](https://www.w3.org/Bugs/Public/show_bug.cgi?id=17152)(等同于 `scrollIntoViewIfNeeded` 的标准特性的请求) From 075d37a335f89a5c7b580cbf0f81a3373e7b9a4b Mon Sep 17 00:00:00 2001 From: A1lo Date: Sun, 26 Nov 2023 21:12:19 +0800 Subject: [PATCH 02/55] zh-cn: init the translation of "camel case" (#17086) --- files/zh-cn/glossary/camel_case/index.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 files/zh-cn/glossary/camel_case/index.md diff --git a/files/zh-cn/glossary/camel_case/index.md b/files/zh-cn/glossary/camel_case/index.md new file mode 100644 index 00000000000000..fa7ef68e3a81c7 --- /dev/null +++ b/files/zh-cn/glossary/camel_case/index.md @@ -0,0 +1,24 @@ +--- +title: 驼峰式命名法 +slug: Glossary/Camel_case +l10n: + sourceCommit: 6aa664dc5ccb5edf0897f99ad5feb59325dff831 +--- + +{{GlossarySidebar}} + +**驼峰式命名法**(Camel case)是一种不使用空格的短语书写方式,除了整个复合单词的首字母可以是大写或小写的之外,其他每个单词的首字母大写。该名称源于大写字母与骆驼背部的驼峰的相似性。它通常被写作“camelCase”,以提醒读者其外观。 + +驼峰式命名法通常用作变量命名约定。以下变量使用了驼峰式命名法:{{domxref("console")}}、{{domxref("crossOriginIsolated")}}、{{jsxref("encodeURIComponent")}}、{{jsxref("ArrayBuffer")}} 和 {{domxref("HTMLElement")}}。 + +注意,如果短语包含缩写(例如 `URI` 和 `HTML`),驼峰式命名法的做法会有所不同。有些人喜欢保持所有缩写大写,例如上面的 `encodeURIComponent`。这有时会导致多个连续缩写的歧义,例如 `XMLHTTPRequest`。其他人则喜欢只大写第一个字母,例如 `XmlHttpRequest`。实际的全局变量 {{domxref("XMLHttpRequest")}} 使用了两者的混合。 + +当整个短语的第一个字母是大写时,它被称为*大驼峰式*(upper camel case)或*帕斯卡式*(Pascal case)。否则,它被称为*小驼峰式*(lower camel case)。 + +驼峰式命名法是 JavaScript、Java 和其他各种语言中最流行的命名约定。 + +## 参见 + +- [蛇形命名法](/zh-CN/docs/Glossary/Snake_case) +- [烤串命名法](/zh-CN/docs/Glossary/Kebab_case) +- [typescript-eslint 规则:`naming-convention`](https://typescript-eslint.io/rules/naming-convention/) From c17919d9f83d738fd78d9460498fe22c527e2451 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 21 Nov 2023 23:31:42 +0900 Subject: [PATCH 03/55] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ja/web/api/range/deletecontents/index.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 files/ja/web/api/range/deletecontents/index.md diff --git a/files/ja/web/api/range/deletecontents/index.md b/files/ja/web/api/range/deletecontents/index.md new file mode 100644 index 00000000000000..3f37c908080f2b --- /dev/null +++ b/files/ja/web/api/range/deletecontents/index.md @@ -0,0 +1,47 @@ +--- +title: "Range: deleteContents() メソッド" +short-title: deleteContents() +slug: Web/API/Range/deleteContents +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e +--- + +{{ApiRef("DOM")}} + +**`Range.deleteContents()`** メソッドは {{ domxref("Range") }} のコンテンツを {{ domxref("Document") }} から取り除きます。 + +{{ domxref("Range.extractContents()") }} とは異なり、このメソッドは削除されたコンテンツを含む {{domxref("DocumentFragment")}} を返しません。 + +## 構文 + +```js-nolint +deleteContents() +``` + +### 引数 + +なし。 + +### 返値 + +なし ({{jsxref("undefined")}})。 + +## 例 + +```js +range = document.createRange(); +range.selectNode(document.getElementsByTagName("div").item(0)); +range.deleteContents(); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model) From 151368bb45500a4cc57121d48d8055563691fe5d Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 21 Nov 2023 23:55:42 +0900 Subject: [PATCH 04/55] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/api/range/detach/index.md | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 files/ja/web/api/range/detach/index.md diff --git a/files/ja/web/api/range/detach/index.md b/files/ja/web/api/range/detach/index.md new file mode 100644 index 00000000000000..7f992871a42765 --- /dev/null +++ b/files/ja/web/api/range/detach/index.md @@ -0,0 +1,46 @@ +--- +title: "Range: detach() メソッド" +short-title: detach() +slug: Web/API/Range/detach +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e +--- + +{{ApiRef("DOM")}} + +**`Range.detach()`** メソッドは何もしません。使用するのは {{domxref("Range")}} オブジェクトを無効にして、ブラウザーが関連リソースを解放できるようにするためです。このメソッドは互換性のために維持されています。 + +## 構文 + +```js-nolint +detach() +``` + +### 引数 + +なし。 + +### 返値 + +なし ({{jsxref("undefined")}})。 + +## 例 + +```js +const range = document.createRange(); + +range.selectNode(document.getElementsByTagName("div").item(0)); +range.detach(); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model) From 357cc966a995763dff5849e9bef422c597d6bc89 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 22 Nov 2023 00:07:41 +0900 Subject: [PATCH 05/55] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ja/web/api/range/extractcontents/index.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 files/ja/web/api/range/extractcontents/index.md diff --git a/files/ja/web/api/range/extractcontents/index.md b/files/ja/web/api/range/extractcontents/index.md new file mode 100644 index 00000000000000..e93f7ed3f6d639 --- /dev/null +++ b/files/ja/web/api/range/extractcontents/index.md @@ -0,0 +1,119 @@ +--- +title: "Range: extractContents() メソッド" +short-title: extractContents() +slug: Web/API/Range/extractContents +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e +--- + +{{ApiRef("DOM")}} + +**`Range.extractContents()`** は {{ domxref("Range") }} の内容をこの文書ツリーから {{ domxref("DocumentFragment") }} へ移動させます。 + +DOM Events を使用して追加したイベントリスナーは、抽出時に維持されません。HTML 属性のイベントは、{{domxref("Node.cloneNode()")}} メソッドの場合と同様に維持または複製されます。HTML の `id` 属性も複製されるため、部分的に選択されたノードが抽出され文書に追加された場合、無効な文書になる可能性があります。 + +部分的に選択されたノードは、文書フラグメントを有効にするために必要な親タグを含めて複製されます。 + +## 構文 + +```js-nolint +extractContents() +``` + +### 引数 + +なし。 + +### 返値 + +{{ domxref("DocumentFragment") }} オブジェクトです。 + +## 例 + +### 基本的な例 + +```js +const range = document.createRange(); +range.selectNode(document.getElementsByTagName("div").item(0)); +const documentFragment = range.extractContents(); +document.body.appendChild(documentFragment); +``` + +### コンテナー間でアイテムを移動 + +この例では、 2 つのコンテナー間でアイテムを移動させます。 1 つ以上のアイテムを選択し +をクリックすると、反対側のコンテナーに移動されます。 + +#### HTML + +```html +

123456

+ +

abcdef

+``` + +#### CSS + +```css +body { + pointer-events: none; +} + +p { + border: 1px solid; + font-size: 2em; + padding: 0.3em; +} + +button { + font-size: 1.2em; + padding: 0.5em; + pointer-events: auto; +} +``` + +#### JavaScript + +```js +const list1 = document.getElementById("list1"); +const list2 = document.getElementById("list2"); +const button = document.getElementById("swap"); + +button.addEventListener("click", (e) => { + selection = window.getSelection(); + + for (let i = 0; i < selection.rangeCount; i++) { + const range = selection.getRangeAt(i); + + if ( + range.commonAncestorContainer === list1 || + range.commonAncestorContainer.parentNode === list1 + ) { + const documentFragment = range.extractContents(); + list2.appendChild(documentFragment); + } else if ( + range.commonAncestorContainer === list2 || + range.commonAncestorContainer.parentNode === list2 + ) { + const documentFragment = range.extractContents(); + list1.appendChild(documentFragment); + } + } +}); +``` + +#### 結果 + +{{EmbedLiveSample("Moving_items_between_containers", 700, 300)}} + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model) From 1edc90cec47ba906ebd497e6a306276467e199ce Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 22 Nov 2023 08:14:30 +0900 Subject: [PATCH 06/55] =?UTF-8?q?2023/05/13=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/range/getboundingclientrect/index.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 files/ja/web/api/range/getboundingclientrect/index.md diff --git a/files/ja/web/api/range/getboundingclientrect/index.md b/files/ja/web/api/range/getboundingclientrect/index.md new file mode 100644 index 00000000000000..2f02ae872fecb5 --- /dev/null +++ b/files/ja/web/api/range/getboundingclientrect/index.md @@ -0,0 +1,86 @@ +--- +title: "Range: getBoundingClientRect() メソッド" +short-title: getBoundingClientRect() +slug: Web/API/Range/getBoundingClientRect +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e +--- + +{{ApiRef("DOM")}} + +**`Range.getBoundingClientRect()`** メソッドは、範囲のコンテンツを囲む {{ domxref("DOMRect") }} オブジェクトを返します。これは、範囲内のすべての要素の外接長方形の和を囲む長方形です。 + +このメソッドは、テキストボックス内のカーソルまたは選択範囲のビューポート座標を決定するのに有益です。返値の詳細については {{domxref("Element.getBoundingClientRect()")}} を参照してください。 + +## 構文 + +```js-nolint +getBoundingClientRect() +``` + +### 引数 + +なし。 + +### 返値 + +範囲内のすべての要素の外接長方形の和を囲む {{domxref("DOMRect")}} オブジェクトです。 + +## 例 + +### HTML + +```html +
+

+ この例では、範囲のコンテンツの後ろに「ハイライト」長方形を配置しています。 + 範囲のコンテンツはここから始まりここで終わりまで続きます。外接クライアント長方形は、範囲内で選択されたすべてのものを格納します。 +

+``` + +### CSS + +```css +#highlight { + background: yellow; + position: absolute; + z-index: -1; +} + +p { + width: 200px; +} +``` + +### JavaScript + +```js +const range = document.createRange(); +range.setStartBefore(document.getElementsByTagName("em").item(0)); +range.setEndAfter(document.getElementsByTagName("em").item(1)); + +const clientRect = range.getBoundingClientRect(); +const highlight = document.getElementById("highlight"); +highlight.style.left = `${clientRect.x}px`; +highlight.style.top = `${clientRect.y}px`; +highlight.style.width = `${clientRect.width}px`; +highlight.style.height = `${clientRect.height}px`; +``` + +### 結果 + +{{EmbedLiveSample("Examples")}} + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{domxref("Range.getClientRects()")}} - 矩形以外の範囲(選択範囲が次の行に折り返される場合など)に対する、より細かい結果 +- {{domxref("Element.getBoundingClientRect()")}} +- {{domxref("Document.caretPositionFromPoint()")}} - ビューポート座標から(ノード、オフセット)を取得 From 8f005f3dfe607a1837c7274e8d75a71320ddf691 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 22 Nov 2023 22:13:14 +0900 Subject: [PATCH 07/55] =?UTF-8?q?2023/05/13=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ja/web/api/range/getclientrects/index.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 files/ja/web/api/range/getclientrects/index.md diff --git a/files/ja/web/api/range/getclientrects/index.md b/files/ja/web/api/range/getclientrects/index.md new file mode 100644 index 00000000000000..034616cf5c8788 --- /dev/null +++ b/files/ja/web/api/range/getclientrects/index.md @@ -0,0 +1,75 @@ +--- +title: "Range: getClientRects() メソッド" +short-title: getClientRects() +slug: Web/API/Range/getClientRects +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e +--- + +{{ApiRef("DOM")}} + +**`Range.getClientRects()`** メソッドは、[範囲](/ja/docs/Web/API/Range)が占める画面の領域を表す {{ domxref("DOMRect") }} オブジェクトのリストを返します。これは、 {{ domxref("Element.getClientRects()") }} を呼び出した結果を集約して作成されます。 + +## 構文 + +```js-nolint +getClientRects() +``` + +### 引数 + +None. + +### 返値 + +[反復可能](/ja/docs/Web/JavaScript/Reference/Iteration_protocols#反復可能プロトコル)な {{domxref("DOMRect")}} オブジェクトの並びです。 + +## 例 + +### 選択されたクライアント矩形のサイズのログ記録 + +#### HTML + +```html +
+

+```
+
+#### CSS
+
+```css
+div {
+  height: 80px;
+  width: 200px;
+  background-color: blue;
+}
+```
+
+#### JavaScript
+
+```js
+const range = document.createRange();
+range.selectNode(document.querySelector("div"));
+rectList = range.getClientRects();
+
+const output = document.querySelector("#output");
+for (const rect of rectList) {
+  output.textContent = `${output.textContent}\n${rect.width}:${rect.height}`;
+}
+```
+
+#### 結果
+
+{{EmbedLiveSample("選択されたクライアント矩形のサイズのログ記録")}}
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Range")}}

From 6b6c2474951bdc7e1844c3c8258146e776ba9e28 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 
Date: Wed, 22 Nov 2023 23:08:00 +0900
Subject: [PATCH 08/55] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
 =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
 =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 files/ja/web/api/range/insertnode/index.md | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 files/ja/web/api/range/insertnode/index.md

diff --git a/files/ja/web/api/range/insertnode/index.md b/files/ja/web/api/range/insertnode/index.md
new file mode 100644
index 00000000000000..0619eb9fafe7c1
--- /dev/null
+++ b/files/ja/web/api/range/insertnode/index.md
@@ -0,0 +1,52 @@
+---
+title: "Range: insertNode() メソッド"
+short-title: insertNode()
+slug: Web/API/Range/insertNode
+l10n:
+  sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
+---
+
+{{ApiRef("DOM")}}
+
+**`Range.insertNode()`** メソッドは {{domxref("Range")}} の先頭にノードを挿入します。
+
+新しいノードは `Range` の始まりの境界点に挿入されます。新しいノードがテキスト {{domxref("Node")}} に追加される場合、その `Node` は挿入点で分割され、挿入は 2 つのテキストノードの間に行われます。
+
+新しいノードが文書フラグメントの場合、代わりにその文書フラグメントの子が挿入されます。
+
+## 構文
+
+```js-nolint
+insertNode(newNode)
+```
+
+### 引数
+
+- `newNode`
+  - : `Range` の先頭に挿入する {{domxref("Node")}} です。
+
+### 返値
+
+なし ({{jsxref("undefined")}})。
+
+## 例
+
+```js
+range = document.createRange();
+newNode = document.createElement("p");
+newNode.appendChild(document.createTextNode("New Node Inserted Here"));
+range.selectNode(document.getElementsByTagName("div").item(0));
+range.insertNode(newNode);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)

From 4ec80c722dc71717145505fa8ddaabd39d1dee03 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 
Date: Wed, 22 Nov 2023 23:10:10 +0900
Subject: [PATCH 09/55] =?UTF-8?q?2023/07/07=20=E6=99=82=E7=82=B9=E3=81=AE?=
 =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
 =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 files/ja/web/api/range/intersectsnode/index.md | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/files/ja/web/api/range/intersectsnode/index.md b/files/ja/web/api/range/intersectsnode/index.md
index e3aa59e434a5c0..ce8ae2202cb0f6 100644
--- a/files/ja/web/api/range/intersectsnode/index.md
+++ b/files/ja/web/api/range/intersectsnode/index.md
@@ -1,16 +1,19 @@
 ---
-title: Range.intersectsNode()
+title: "Range: intersectsNode() メソッド"
+short-title: intersectsNode()
 slug: Web/API/Range/intersectsNode
+l10n:
+  sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
 ---
 
-{{ApiRef("DOM")}} {{SeeCompatTable}}
+{{ApiRef("DOM")}}
 
 **`Range.intersectsNode()`** メソッドは、指定された {{domxref("Node")}} が {{domxref("Range")}} と交差しているかどうかを示す論理値を返します。
 
 ## 構文
 
-```js
-intersectsNode(referenceNode);
+```js-nolint
+intersectsNode(referenceNode)
 ```
 
 ### 引数

From 4e04a845c28e4e00a0a4c65c4f8ce08c4d87e8dc Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 
Date: Wed, 22 Nov 2023 23:13:45 +0900
Subject: [PATCH 10/55] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?=
 =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?=
 =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../ja/web/api/range/ispointinrange/index.md  | 48 +++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 files/ja/web/api/range/ispointinrange/index.md

diff --git a/files/ja/web/api/range/ispointinrange/index.md b/files/ja/web/api/range/ispointinrange/index.md
new file mode 100644
index 00000000000000..cfb016d740c767
--- /dev/null
+++ b/files/ja/web/api/range/ispointinrange/index.md
@@ -0,0 +1,48 @@
+---
+title: "Range: isPointInRange() メソッド"
+short-title: isPointInRange()
+slug: Web/API/Range/isPointInRange
+l10n:
+  sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e
+---
+
+{{ApiRef("DOM")}}
+
+**`Range.isPointInRange()`** メソッドは、指定されたこの点が {{domxref("Range")}} 内にあるかどうかを示す論理値を返します。このメソッドは `ReferenceNode` 内の `offset` にある点(カーソル位置)がこの範囲内にある場合に `true` を返します。
+
+## 構文
+
+```js-nolint
+isPointInRange(referenceNode, offset)
+```
+
+### 引数
+
+- `referenceNode`
+  - : {{domxref("Range")}} と比較する {{domxref("Node")}} です。
+- `offset`
+  - : {{domxref("Range")}} と比較するこの点の {{domxref("Node")}} 内のオフセットです。
+
+### 返値
+
+論理値です。
+
+## 例
+
+```js
+range = document.createRange();
+range.selectNode(document.getElementsByTagName("div").item(0));
+bool = range.isPointInRange(document.getElementsByTagName("p").item(0), 1);
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [DOM インターフェイス索引](/ja/docs/Web/API/Document_Object_Model)

From 3e5495398cd1aee04fbebc59b638ba0c4b9c3da3 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 
Date: Thu, 23 Nov 2023 01:06:56 +0900
Subject: [PATCH 11/55] =?UTF-8?q?#17051=20=E3=81=AE=E5=A4=89=E6=9B=B4?=
 =?UTF-8?q?=E7=B5=90=E6=9E=9C=E3=82=92=E6=95=B4=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 files/ja/_redirects.txt                       |  22 +-
 files/ja/_wikihistory.json                    |  25 -
 .../fetching_data/index.md                    |  56 ---
 .../working_with_the_history_api/index.md     | 431 ------------------
 .../htmldialogelement/cancel_event/index.md   |  94 ----
 5 files changed, 11 insertions(+), 617 deletions(-)
 delete mode 100644 files/ja/conflicting/learn/javascript/client-side_web_apis/fetching_data/index.md
 delete mode 100644 files/ja/conflicting/web/api/history_api/working_with_the_history_api/index.md
 delete mode 100644 files/ja/orphaned/web/api/htmldialogelement/cancel_event/index.md

diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt
index 09b1274fd4a7f8..133f6a8c275bd2 100644
--- a/files/ja/_redirects.txt
+++ b/files/ja/_redirects.txt
@@ -4,11 +4,11 @@
 #    yarn content add-redirect  
 #
 # FROM-URL	TO-URL
-/ja/docs/AJAX	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/AJAX/Community	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/AJAX/Getting_Started	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/AJAX:Community	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/AJAX:Getting_Started	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/AJAX	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/AJAX/Community	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/AJAX/Getting_Started	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/AJAX:Community	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/AJAX:Getting_Started	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
 /ja/docs/API	/ja/docs/Web/API
 /ja/docs/API/Document	/ja/docs/Web/API/Document
 /ja/docs/API/Document/Document	/ja/docs/Web/API/Document/Document
@@ -2835,7 +2835,7 @@
 /ja/docs/Web/API/GlobalFetch	/ja/docs/Web/API/fetch
 /ja/docs/Web/API/GlobalFetch/fetch	/ja/docs/Web/API/fetch
 /ja/docs/Web/API/HTMLContentElement	/ja/docs/Web/API/HTMLSlotElement
-/ja/docs/Web/API/HTMLDialogElement/cancel_event	/ja/docs/orphaned/Web/API/HTMLDialogElement/cancel_event
+/ja/docs/Web/API/HTMLDialogElement/cancel_event	/ja/docs/Web/API/HTMLDialogElement
 /ja/docs/Web/API/HTMLElement/animationcancel_event	/ja/docs/Web/API/Element/animationcancel_event
 /ja/docs/Web/API/HTMLElement/animationend_event	/ja/docs/Web/API/Element/animationend_event
 /ja/docs/Web/API/HTMLElement/animationiteration_event	/ja/docs/Web/API/Element/animationiteration_event
@@ -2910,7 +2910,7 @@
 /ja/docs/Web/API/HTMLTableRowElement.insertCell	/ja/docs/Web/API/HTMLTableRowElement/insertCell
 /ja/docs/Web/API/HTMLTableRowElement.rowIndex	/ja/docs/Web/API/HTMLTableRowElement/rowIndex
 /ja/docs/Web/API/HTML_Drag_and_Drop_API/Multiple_items	/ja/docs/orphaned/Web/API/HTML_Drag_and_Drop_API/Multiple_items
-/ja/docs/Web/API/History_API/Example	/ja/docs/conflicting/Web/API/History_API/Working_with_the_History_API
+/ja/docs/Web/API/History_API/Example	/ja/docs/Web/API/History_API/Working_with_the_History_API
 /ja/docs/Web/API/IDBDatabase.close	/ja/docs/Web/API/IDBDatabase/close
 /ja/docs/Web/API/IDBDatabase.createObjectStore	/ja/docs/Web/API/IDBDatabase/createObjectStore
 /ja/docs/Web/API/IDBDatabase.name	/ja/docs/Web/API/IDBDatabase/name
@@ -3879,9 +3879,9 @@
 /ja/docs/Web/Events/vrdisplaydisconnected	/ja/docs/Web/API/Window/vrdisplaydisconnect_event
 /ja/docs/Web/Events/vrdisplaypresentchange	/ja/docs/Web/API/Window/vrdisplaypresentchange_event
 /ja/docs/Web/Events/waiting	/ja/docs/Web/API/HTMLMediaElement/waiting_event
-/ja/docs/Web/Guide/AJAX	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/Web/Guide/AJAX/Community	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-/ja/docs/Web/Guide/AJAX/Getting_Started	/ja/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/Web/Guide/AJAX	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/Web/Guide/AJAX/Community	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
+/ja/docs/Web/Guide/AJAX/Getting_Started	/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data
 /ja/docs/Web/Guide/AJAX/WAI_ARIA_Live_Regions_API_Support	/ja/docs/Mozilla/Firefox/Releases/3/WAI_ARIA_Live_Regions_API_Support
 /ja/docs/Web/Guide/API/Gamepad	/ja/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
 /ja/docs/Web/Guide/API/Vibration	/ja/docs/Web/API/Vibration_API
@@ -3925,7 +3925,7 @@
 /ja/docs/Web/Guide/DOM/Events/Touch_events	/ja/docs/Web/API/Touch_events
 /ja/docs/Web/Guide/DOM/Events/Touch_events/Supporting_both_TouchEvent_and_MouseEvent	/ja/docs/Web/API/Pointer_events
 /ja/docs/Web/Guide/DOM/Manipulating_the_browser_history	/ja/docs/Web/API/History_API
-/ja/docs/Web/Guide/DOM/Manipulating_the_browser_history/Example	/ja/docs/conflicting/Web/API/History_API/Working_with_the_History_API
+/ja/docs/Web/Guide/DOM/Manipulating_the_browser_history/Example	/ja/docs/Web/API/History_API/Working_with_the_History_API
 /ja/docs/Web/Guide/DOM/Manipulating_the_browser_history/Working_with_the_History_API	/ja/docs/Web/API/History_API/Working_with_the_History_API
 /ja/docs/Web/Guide/DOM/Using_full_screen_mode	/ja/docs/Web/API/Fullscreen_API
 /ja/docs/Web/Guide/DOM/Whitespace_in_the_DOM	/ja/docs/Web/API/Document_Object_Model/Whitespace
diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json
index f195bc30f15b9d..92cb1d8dd743f4 100644
--- a/files/ja/_wikihistory.json
+++ b/files/ja/_wikihistory.json
@@ -30185,23 +30185,6 @@
     "modified": "2019-03-18T20:53:07.981Z",
     "contributors": ["mfuji09"]
   },
-  "conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data": {
-    "modified": "2020-08-12T11:49:11.332Z",
-    "contributors": [
-      "mfuji09",
-      "silverskyvicto",
-      "chrisdavidmills",
-      "fscholz",
-      "ethertank",
-      "Potappo",
-      "Mgjbot",
-      "Summit677",
-      "Marsf",
-      "Shimono",
-      "Taken Bot",
-      "Dria"
-    ]
-  },
   "conflicting/Learn/JavaScript/Objects/Classes_in_JavaScript": {
     "modified": "2020-12-06T14:17:48.495Z",
     "contributors": [
@@ -30394,10 +30377,6 @@
     "modified": "2020-10-15T22:18:26.930Z",
     "contributors": ["Wind1808"]
   },
-  "conflicting/Web/API/History_API/Working_with_the_History_API": {
-    "modified": "2020-02-15T02:40:44.391Z",
-    "contributors": ["mfuji09", "silverskyvicto"]
-  },
   "conflicting/Web/API/SyncEvent": {
     "modified": "2020-10-15T22:32:47.070Z",
     "contributors": ["eltociear"]
@@ -30571,10 +30550,6 @@
     "modified": "2020-10-15T22:28:00.883Z",
     "contributors": ["mfuji09"]
   },
-  "orphaned/Web/API/HTMLDialogElement/cancel_event": {
-    "modified": "2020-10-15T22:28:07.370Z",
-    "contributors": ["mfuji09"]
-  },
   "orphaned/Web/API/HTMLElement/contextMenu": {
     "modified": "2020-10-15T22:22:28.350Z",
     "contributors": ["Wind1808"]
diff --git a/files/ja/conflicting/learn/javascript/client-side_web_apis/fetching_data/index.md b/files/ja/conflicting/learn/javascript/client-side_web_apis/fetching_data/index.md
deleted file mode 100644
index f724014d899c6a..00000000000000
--- a/files/ja/conflicting/learn/javascript/client-side_web_apis/fetching_data/index.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: AJAX
-slug: conflicting/Learn/JavaScript/Client-side_web_APIs/Fetching_data
-original_slug: Web/Guide/AJAX
----
-
-## [はじめに](/ja/docs/Web/Guide/AJAX/Getting_Started)
-
-**A**synchronous **J**avaScript **a**nd **X**ML (AJAX) はそれ自体がある種の技術というわけではありませんが、 Jesse James Garrett によって 2005 年に作られた言葉で、既存の技術同士を組み合わせた新しいアプローチを意味します。組み合わされる技術は、[HTML](/ja/docs/Web/HTML), [XHTML](/ja/docs/Glossary/XHTML), [CSS](/ja/docs/Web/CSS), [JavaScript](/ja/docs/Web/JavaScript), [DOM](/ja/docs/Web/API/Document_Object_Model), [XML](/ja/docs/Web/XML), [XSLT](/ja/docs/Web/XSLT), そして最も重要なものは {{domxref("XMLHttpRequest")}} オブジェクトです。
-これらの技術が AJAX のモデルで組み合わされると、ウェブアプリケーションはより早く、表示されているページ全てを再読み込みすることなく、ユーザーインターフェイスを逐次更新できるようになります。そして、アプリケーションにより早い表示、より良い応答性をもたらします。
-
-Ajax の X は XML を表していますが、 {{glossary("JSON")}} の方がより軽く JavaScript の一部であることなど数多くの利点があるため、今日では XML よりもよく使われています。 JSON と XML はどちらも Ajax モデルの情報をパッケージ化するために使用されます。
-
-## ドキュメント
-
-- [はじめに](/ja/docs/Web/Guide/AJAX/Getting_Started)
-  - : この記事では AJAX の基本について説明し、始めるために 2 つの簡単な実例を紹介します。
-- [`XMLHttpRequest` API の使用](/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
-
-  - : {{domxref("XMLHttpRequest")}} API は、Ajax のコアです。この記事では、次のような Ajax 技術の使用方法について説明します。
-
-    - [サーバーのレスポンスの分析と操作](/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#handling_responses)
-    - [リクエストの進捗のモニタリング](/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#monitoring_progress)
-    - [フォームの送信とバイナリーファイルのアップロード](/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#submitting_forms_and_uploading_files) – _純粋な Ajax_、もしくは {{domxref("FormData")}} オブジェクトを使用します
-    - [ウェブワーカー](/ja/docs/Web/API/Worker)内部における Ajax の使用
-
-- [Fetch API](/ja/docs/Web/API/Fetch_API)
-  - : Fetch API はリソースをフェッチするためのインターフェイスを提供します。 {{domxref("XMLHTTPRequest")}} を使用した人なら誰にでも馴染みのあるように見えますが、この API はより強力で柔軟な機能セットを提供します。
-- [Server-sent イベント](/ja/docs/Web/API/Server-sent_events)
-  - : 伝統的に、ウェブページは新しいデータを受信するためにサーバーにリクエストを送信しなければなりません。つまり、ページはサーバーにデータを要求します。サーバーが送信したイベントでは、サーバーがメッセージをウェブページにプッシュすることで、いつでもウェブページに新しいデータを送信することができます。これらの着信メッセージは、ウェブページ内の*[イベント](/ja/docs/Web/API/Event)+データ*として扱うことができます。[サーバー送信イベントの使用](/ja/docs/Web/API/Server-sent_events/Using_server-sent_events)を参照してください。
-- [_純粋な Ajax_ ナビゲーションサンプル](/ja/docs/Web/API/History_API/Example)
-  - : この記事では、_純粋な Ajax_ ウェブサイトの 3 つのページから構成された実用的な (最小限の) 例を提供します。
-- [バイナリーデータの送信と受信](/ja/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data)
-  - : `XMLHttpRequest` オブジェクトの `responseType` プロパティを設定して、予想されるレスポンスタイプをサーバーから変更することができます。可能な値は空文字列 (デフォルト), `arraybuffer`, `blob`, `document`, `json`, `text` です。`response` のプロパティには、 `responseType` に従って `ArrayBuffer`, `Blob`, `Document`, `JSON`、または string のようなエンティティ本文が含まれます。この記事では、Ajax の I/O 技術をいくつか紹介します。
-- [XML](/ja/docs/Web/XML)
-  - : **Extensible Markup Language (XML)** は、特定の目的のマークアップ言語を作成する W3C 推奨の汎用マークアップ言語です。これは SGML の単純化されたサブセットであり、多くの異なる種類のデータを記述することができます。その主な目的は、異なるシステム、特にインターネットを介して接続されたシステム間でのデータの共有を容易にすることです。
-- [XML の解釈とシリアライズ](/ja/docs/Web/Guide/Parsing_and_serializing_XML)
-  - : 文字列、ファイル、または JavaScript を使用して XML 文書を解釈する方法、XML 文書を文字列、Javascript Object Tree (JXON) またはファイルにシリアル化する方法
-- [XPath](/ja/docs/Web/XPath)
-  - : XPath は **X**ML **Path** Language (XML パス言語) の略で、[XML](/ja/docs/Web/XML) 文書のさまざまな部分をアドレス指定する (指す) 柔軟な方法を提供する非 XML 構文を使用します。これと同様に、ドキュメント内のアドレス指定されたノードをテストしてパターンに一致するかどうかを判断することもできます。
-- {{domxref("FileReader")}} API
-  - : `FileReader` API を使用すると、ウェブアプリケーションがユーザーのコンピューターに格納されているファイル (または生データバッファ) の内容を非同期に読み取ることができ、読み取るファイルまたはデータを {{domxref("File")}} または {{domxref("Blob")}} オブジェクトで特定します。 File オブジェクトはユーザーが {{HTMLElement("input")}} 要素を使用して選択した結果として返される {{domxref("FileList")}} オブジェクト、ドラッグ&ドロップ操作の {{domxref("DataTransfer")}} オブジェクト、 {{domxref("HTMLCanvasElement")}} の `mozGetAsFile()` API から取得することができます。
-- [XMLHttpRequest における HTML](/ja/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest)
-  - : W3C の [XMLHttpRequest](https://xhr.spec.whatwg.org/) 仕様書では、もともと XML の解析のみに対応していた {{domxref("XMLHttpRequest")}} に HTML 解析の対応が追加されています。この機能を使用すると、ウェブアプリケーションは `XMLHttpRequest` を使用して解析された DOM として HTML リソースを取得できます。
-
-## ツール
-
-- [axios](https://github.com/axios/axios)
-  - : {{jsxref("Promise")}} ベースの {{glossary("HTTP")}} クライアントで、内部的に `XMLHttpRequest` を使用しています。
-
-## 関連情報
-
-- [Ajax: ウェブアプリケーションへの新しいアプローチ](https://pdfs.semanticscholar.org/c440/ae765ff19ddd3deda24a92ac39cef9570f1e.pdf)
-  - : Adaptive Path の Jesse James Garrett は 2005 年 2 月にこの記事を書いて、 Ajax とその関連概念を紹介しました。
-- [XMLHttpRequest の仕様書](https://xhr.spec.whatwg.org/)
-  - : WHATWG ライブ標準
diff --git a/files/ja/conflicting/web/api/history_api/working_with_the_history_api/index.md b/files/ja/conflicting/web/api/history_api/working_with_the_history_api/index.md
deleted file mode 100644
index 842573d84c870c..00000000000000
--- a/files/ja/conflicting/web/api/history_api/working_with_the_history_api/index.md
+++ /dev/null
@@ -1,431 +0,0 @@
----
-title: Ajax ナビゲーションの例
-slug: conflicting/Web/API/History_API/Working_with_the_History_API
-original_slug: Web/API/History_API/Example
----
-
-これは 3 つのページ (first_page.php、second_page.php、third_page.php) で構成された AJAX ウェブサイトの例です。どのように動作するかを確認するには、以下のファイル (または git clone [https://github.com/giabao/mdn-ajax-nav-example.git](https://github.com/giabao/mdn-ajax-nav-example)) を作成してください。
-
-> **メモ:** このメカニズム内の {{HTMLElement("form")}} 要素を完全に統合するには、[フォームの送信とファイルのアップロード](/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#フォームの送信とファイルのアップロード)の段落を見てください。
-
-**first_page.php**:
-
-```php
-
-
-
-
-" . $page_title . "";
-?>
-
-
-
-
-
-
-

This paragraph is shown only when the navigation starts from first_page.php.

- -
- - -

This is the content of first_page.php.

- - $page_title, "content" => ob_get_clean())); - } else { -?> -
- -

This paragraph is shown only when the navigation starts from first_page.php.

- -\n"; - } -?> -``` - -**second_page.php**: - -```php - - - - -" . $page_title . ""; -?> - - - - - - -

This paragraph is shown only when the navigation starts from second_page.php.

- -
- - -

This is the content of second_page.php.

- - $page_title, "content" => ob_get_clean())); - } else { -?> -
- -

This paragraph is shown only when the navigation starts from second_page.php.

- -\n"; - } -?> -``` - -**third_page.php**: - -```php -This is the content of third_page.php. This content is stored into a PHP variable.

"; - - if (isset($_GET["view_as"]) && $_GET["view_as"] == "json") { - echo json_encode(array("page" => $page_title, "content" => $page_content)); - } else { -?> - - - -" . $page_title . ""; -?> - - - - - - -

This paragraph is shown only when the navigation starts from third_page.php.

- -
- -
- -

This paragraph is shown only when the navigation starts from third_page.php.

- -\n"; - } -?> -``` - -**css/style.css**: - -```css -#ajax-loader { - position: fixed; - display: table; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -#ajax-loader > div { - display: table-cell; - width: 100%; - height: 100%; - vertical-align: middle; - text-align: center; - background-color: #000000; - opacity: 0.65; -} -``` - -**include/after_content.php**: - -```php -

This is the footer. It is shared between all Ajax pages.

-``` - -**include/before_content.php**: - -```php -

-[ First example -| Second example -| Third example -| Unexisting page ] -

-``` - -**include/header.php**: - -```html - - - -``` - -**js/ajax_nav.js**: - -```js -"use strict"; - -const ajaxRequest = new (function () { - let req; - let isLoading = false; - let updateURL = false; - - /* customizable constants */ - const targetId = "ajax-content"; - const viewKey = "view_as"; - const ajaxClass = "ajax-nav"; - - /* not customizable constants */ - const searchRegex = /\?.*$/; - const hostRegex = /^[^?]*\?*&*/; - const viewRegex = new RegExp(`&${viewKey}\\=[^&]*|&*$`, "i"); - const endQstMarkRegex = /\?$/; - const loadingBox = document.createElement("div"); - const cover = document.createElement("div"); - const loadingImg = new Image(); - const pageInfo = { - title: null, - url: location.href, - }; - /* http://www.iana.org/assignments/http-status-codes/http-status-codes.xml */ - const HTTP_STATUS = { - 100: "Continue", - 101: "Switching Protocols", - 102: "Processing", - 200: "OK", - 201: "Created", - 202: "Accepted", - 203: "Non-Authoritative Information", - 204: "No Content", - 205: "Reset Content", - 206: "Partial Content", - 207: "Multi-Status", - 208: "Already Reported", - 226: "IM Used", - 300: "Multiple Choices", - 301: "Moved Permanently", - 302: "Found", - 303: "See Other", - 304: "Not Modified", - 305: "Use Proxy", - 306: "Reserved", - 307: "Temporary Redirect", - 308: "Permanent Redirect", - 400: "Bad Request", - 401: "Unauthorized", - 402: "Payment Required", - 403: "Forbidden", - 404: "Not Found", - 405: "Method Not Allowed", - 406: "Not Acceptable", - 407: "Proxy Authentication Required", - 408: "Request Timeout", - 409: "Conflict", - 410: "Gone", - 411: "Length Required", - 412: "Precondition Failed", - 413: "Request Entity Too Large", - 414: "Request-URI Too Long", - 415: "Unsupported Media Type", - 416: "Requested Range Not Satisfiable", - 417: "Expectation Failed", - 422: "Unprocessable Entity", - 423: "Locked", - 424: "Failed Dependency", - 425: "Unassigned", - 426: "Upgrade Required", - 427: "Unassigned", - 428: "Precondition Required", - 429: "Too Many Requests", - 430: "Unassigned", - 431: "Request Header Fields Too Large", - 500: "Internal Server Error", - 501: "Not Implemented", - 502: "Bad Gateway", - 503: "Service Unavailable", - 504: "Gateway Timeout", - 505: "HTTP Version Not Supported", - 506: "Variant Also Negotiates (Experimental)", - 507: "Insufficient Storage", - 508: "Loop Detected", - 509: "Unassigned", - 510: "Not Extended", - 511: "Network Authentication Required", - }; - - function closeReq() { - loadingBox.parentNode && document.body.removeChild(loadingBox); - isLoading = false; - } - - function abortReq() { - if (!isLoading) { - return; - } - req.abort(); - closeReq(); - } - - function ajaxError() { - alert("Unknown error."); - } - - function ajaxLoad() { - let msg; - const status = this.status; - switch (status) { - case 200: - msg = JSON.parse(this.responseText); - document.title = pageInfo.title = msg.page; - document.getElementById(targetId).innerHTML = msg.content; - if (updateURL) { - history.pushState(pageInfo, pageInfo.title, pageInfo.url); - updateURL = false; - } - break; - default: - msg = `${status}: ${HTTP_STATUS[status] || "Unknown"}`; - switch (Math.floor(status / 100)) { - /* - case 1: - // Informational 1xx - console.log("Information code " + vMsg); - break; - case 2: - // Successful 2xx - console.log("Successful code " + vMsg); - break; - case 3: - // Redirection 3xx - console.log("Redirection code " + vMsg); - break; - */ - case 4: - /* Client Error 4xx */ - alert(`Client Error #${msg}`); - break; - case 5: - /* Server Error 5xx */ - alert(`Server Error #${msg}`); - break; - default: - /* Unknown status */ - ajaxError(); - } - } - closeReq(); - } - - function filterURL(url, viewMode) { - return ( - url.replace(searchRegex, "") + - `?${url - .replace(hostRegex, "&") - .replace(viewRegex, viewMode ? `&${viewKey}=${viewMode}` : "") - .slice(1)}`.replace(endQstMarkRegex, "") - ); - } - - function getPage(page) { - if (isLoading) { - return; - } - req = new XMLHttpRequest(); - isLoading = true; - req.onload = ajaxLoad; - req.onerror = ajaxError; - if (page) { - pageInfo.url = filterURL(page, null); - } - req.open("get", filterURL(pageInfo.url, "json"), true); - req.send(); - loadingBox.parentNode || document.body.appendChild(loadingBox); - } - - function requestPage(url) { - if (history.pushState) { - updateURL = true; - getPage(url); - } else { - /* Ajax navigation is not supported */ - location.assign(url); - } - } - - function processLink() { - if (this.className === ajaxClass) { - requestPage(this.href); - return false; - } - return true; - } - - function init() { - pageInfo.title = document.title; - history.replaceState(pageInfo, pageInfo.title, pageInfo.url); - for (const link of document.links) { - link.onclick = processLink; - } - } - - loadingBox.id = "ajax-loader"; - cover.onclick = abortReq; - loadingImg.src = - "data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA=="; - cover.appendChild(loadingImg); - loadingBox.appendChild(cover); - - onpopstate = (event) => { - updateURL = false; - pageInfo.title = event.state.title; - pageInfo.url = event.state.url; - getPage(); - }; - - window.addEventListener("load", init, false); - - // Public methods - - this.open = requestPage; - this.stop = abortReq; - this.rebuildLinks = init; -})(); -``` - -詳細は、[履歴 API の操作](/ja/docs/Web/API/History_API/Working_with_the_History_API)を参照してください。 - -## 関連情報 - -- {{ domxref("window.history") }} -- {{domxref("Window/popstate_event", "popstate")}} イベント diff --git a/files/ja/orphaned/web/api/htmldialogelement/cancel_event/index.md b/files/ja/orphaned/web/api/htmldialogelement/cancel_event/index.md deleted file mode 100644 index 9c96fae7297655..00000000000000 --- a/files/ja/orphaned/web/api/htmldialogelement/cancel_event/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "HTMLDialogElement: cancel イベント" -slug: orphaned/Web/API/HTMLDialogElement/cancel_event -original_slug: Web/API/HTMLDialogElement/cancel_event ---- - -{{APIRef}} - -**`cancel`** イベントは、ユーザーが現在開いているダイアログを閉じるようブラウザーに指示したときに {{HTMLElement("dialog")}} に発生します。ブラウザーはユーザーが Esc キーを押した時にこのイベントを発生させます。 - -このイベントはバブリングしません。 - -`` を Esc キーで閉じると、`cancel` イベントと {{domxref("HTMLDialogElement/close_event", "close")}} イベントの両方が発行されます。 - -## 構文 - -このイベント名を {{domxref("EventTarget.addEventListener", "addEventListener()")}} などのメソッドで使用したり、イベントハンドラープロパティを設定したりします。 - -```js -addEventListener("cancel", (event) => {}); - -oncancel = (event) => {}; -``` - -## イベント型 - -一般的な {{domxref("Event")}} です。 - -## 例 - -### ライブ例 - -#### HTML - -```html - - - - - - -
-``` - -```css hidden -button, -div { - margin: 0.5rem; -} -``` - -#### JavaScript - -```js -const result = document.querySelector(".result"); - -const dialog = document.querySelector(".example-dialog"); - -dialog.addEventListener("cancel", (event) => { - result.textContent = "dialog was canceled"; -}); - -const openDialog = document.querySelector(".open-dialog"); -openDialog.addEventListener("click", () => { - if (typeof dialog.showModal === "function") { - dialog.showModal(); - result.textContent = ""; - } else { - result.textContent = "The dialog API is not supported by this browser"; - } -}); - -const closeButton = document.querySelector(".close"); -closeButton.addEventListener("click", () => { - dialog.close(); -}); -``` - -#### 結果 - -{{ EmbedLiveSample('Live_example', '100%', '100px') }} - -## 仕様書 - -{{Specifications}} - -## ブラウザーの互換性 - -{{Compat}} - -## 関連情報 - -- HTML {{HTMLElement("dialog")}} element -- {{domxref("HTMLDialogElement/close_event", "close")}} From 01bd099131c1abf24a20f475fc706cada17ba31d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E5=BC=80=E8=8A=B1=E8=90=BD?= Date: Mon, 27 Nov 2023 08:37:32 +0800 Subject: [PATCH 12/55] zh-cn: fix typo (#17122) --- .../javascript/reference/global_objects/array/tosorted/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/tosorted/index.md b/files/zh-cn/web/javascript/reference/global_objects/array/tosorted/index.md index cc7ccb4cf2e63d..1c385e03c57875 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/tosorted/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/array/tosorted/index.md @@ -57,7 +57,7 @@ console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar'] console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec'] const values = [1, 10, 21, 2]; -const sortedValues = values.toSorted((a, b) => a - b)); +const sortedValues = values.toSorted((a, b) => a - b); console.log(sortedValues); // [1, 2, 10, 21] console.log(values); // [1, 10, 21, 2] ``` From 566a1a6835456f77224091a1a0c3937dd73310da Mon Sep 17 00:00:00 2001 From: Leonid Vinogradov Date: Mon, 27 Nov 2023 12:06:42 +0300 Subject: [PATCH 13/55] Remove obsolete `CanvasRenderingContext2D.currentTransform` interface (#16995) * remove CanvasRenderingContext.currentTransform * [ru]: fix CanvasRenderingContext2D.currentTransform redirect --- .../web/api/canvasrenderingcontext2d/index.md | 6 -- .../web/api/canvasrenderingcontext2d/index.md | 6 -- files/ru/_redirects.txt | 2 +- .../web/api/canvasrenderingcontext2d/index.md | 65 ------------------- .../web/api/canvasrenderingcontext2d/index.md | 6 -- 5 files changed, 1 insertion(+), 84 deletions(-) delete mode 100644 files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md diff --git a/files/fr/web/api/canvasrenderingcontext2d/index.md b/files/fr/web/api/canvasrenderingcontext2d/index.md index 6f9500ac899109..4636f1b4bdde4a 100644 --- a/files/fr/web/api/canvasrenderingcontext2d/index.md +++ b/files/fr/web/api/canvasrenderingcontext2d/index.md @@ -152,8 +152,6 @@ The following methods can be used to manipulate paths of objects. Objects in the `CanvasRenderingContext2D` rendering context have a current transformation matrix and methods to manipulate it. The transformation matrix is applied when creating the current default path, painting text, shapes and {{domxref("Path2D")}} objects. The methods listed below remain for historical and compatibility reasons as {{domxref("SVGMatrix")}} objects are used in most parts of the API nowadays and will be used in the future instead. -- {{domxref("CanvasRenderingContext2D.currentTransform")}} - - : Current transformation matrix ({{domxref("SVGMatrix")}} object). - {{domxref("CanvasRenderingContext2D.rotate()")}} - : Adds a rotation to the transformation matrix. The angle argument represents a clockwise rotation angle and is expressed in radians. - {{domxref("CanvasRenderingContext2D.scale()")}} @@ -273,10 +271,6 @@ Most of these APIs are [deprecated and will be removed in the future](https://co #### Prefixed APIs -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransform` - - : Sets or gets the current transformation matrix, see {{domxref("CanvasRenderingContext2D.currentTransform")}}. -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransformInverse` - - : Sets or gets the current inversed transformation matrix. - {{non-standard_inline}} `CanvasRenderingContext2D.mozImageSmoothingEnabled` - : See {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled")}}. - {{non-standard_inline}} {{deprecated_inline}} `CanvasRenderingContext2D.mozTextStyle` diff --git a/files/pt-br/web/api/canvasrenderingcontext2d/index.md b/files/pt-br/web/api/canvasrenderingcontext2d/index.md index 06763129a8c5fc..b38d7d78c3a433 100644 --- a/files/pt-br/web/api/canvasrenderingcontext2d/index.md +++ b/files/pt-br/web/api/canvasrenderingcontext2d/index.md @@ -150,8 +150,6 @@ Os seguintes métodos podem ser usados para manipular caminhos de desenhos. Objects in the `CanvasRenderingContext2D` rendering context have a current transformation matrix and methods to manipulate it. The transformation matrix is applied when creating the current default path, painting text, shapes and {{domxref("Path2D")}} objects. The methods listed below remain for historical and compatibility reasons as {{domxref("SVGMatrix")}} objects are used in most parts of the API nowadays and will be used in the future instead. -- {{domxref("CanvasRenderingContext2D.currentTransform")}} - - : Current transformation matrix ({{domxref("SVGMatrix")}} object). - {{domxref("CanvasRenderingContext2D.rotate()")}} - : Adds a rotation to the transformation matrix. The angle argument represents a clockwise rotation angle and is expressed in radians. - {{domxref("CanvasRenderingContext2D.scale()")}} @@ -271,10 +269,6 @@ Most of these APIs are [deprecated and will be removed in the future](https://co #### Prefixed APIs -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransform` - - : Sets or gets the current transformation matrix, see {{domxref("CanvasRenderingContext2D.currentTransform")}}. -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransformInverse` - - : Sets or gets the current inversed transformation matrix. - {{non-standard_inline}} `CanvasRenderingContext2D.mozFillRule` - : The [fill rule](http://cairographics.org/manual/cairo-cairo-t.html#cairo-fill-rule-t) to use. This must be one of `evenodd` or `nonzero` (default). - {{non-standard_inline}} `CanvasRenderingContext2D.mozImageSmoothingEnabled` diff --git a/files/ru/_redirects.txt b/files/ru/_redirects.txt index 5908c4f15718de..09d79d1bf71c2a 100644 --- a/files/ru/_redirects.txt +++ b/files/ru/_redirects.txt @@ -400,7 +400,7 @@ /ru/docs/Web/API/AudioContext/currentTime /ru/docs/Web/API/BaseAudioContext/currentTime /ru/docs/Web/API/ByteString /ru/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String /ru/docs/Web/API/CSS_Object_Model/ориентация_экрана /ru/docs/Web/API/CSS_Object_Model/Managing_screen_orientation -/ru/docs/Web/API/CanvasRenderingContext2D/currentTransform /ru/docs/conflicting/Web/API/CanvasRenderingContext2D +/ru/docs/Web/API/CanvasRenderingContext2D/currentTransform /ru/docs/Web/API/CanvasRenderingContext2D /ru/docs/Web/API/Canvas_API/A_basic_ray-caster /ru/docs/orphaned/Web/API/Canvas_API/A_basic_ray-caster /ru/docs/Web/API/Canvas_API/Tutorial/Использование_изображений /ru/docs/Web/API/Canvas_API/Tutorial/Using_images /ru/docs/Web/API/Canvas_API/Tutorial/Композиции /ru/docs/Web/API/Canvas_API/Tutorial/Compositing diff --git a/files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md b/files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md deleted file mode 100644 index de7f5abc296c51..00000000000000 --- a/files/ru/conflicting/web/api/canvasrenderingcontext2d/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: CanvasRenderingContext2D.currentTransform -slug: conflicting/Web/API/CanvasRenderingContext2D -original_slug: Web/API/CanvasRenderingContext2D/currentTransform ---- - -{{APIRef()}} {{SeeCompatTable}} - -Свойство **`CanvasRenderingContext2D.currentTransform`**, предоставляемое Canvas 2D API, возвращает или устанавливает объект {{domxref("SVGMatrix")}} для текущей матрицы преобразований. - -## Синтаксис - -``` -ctx.currentTransform [= value]; -``` - -- `value` - - : Объект {{domxref("SVGMatrix")}}, который будет использован в роли текущей матрицы преобразований. - -## Примеры - -### Использование метода `currentTransform` - -Ниже представлен простой фрагмент кода, использующий свойство `currentTransform` для установки матрицы преобразований. - -#### HTML - -```html - -``` - -#### JavaScript - -```js -const canvas = document.getElementById('canvas'); -const ctx = canvas.getContext('2d'); - -let matrix = ctx.currentTransform; -matrix.a = 1; -matrix.b = 1; -matrix.c = 0; -matrix.d = 1; -matrix.e = 0; -matrix.f = 0; -ctx.currentTransform = matrix; -ctx.fillRect(0, 0, 100, 100); -``` - -#### Результат - -{{ EmbedLiveSample('Использование_метода_currentTransform', 700, 180) }} - -## Спецификации - -{{Specifications}} - -## Поддержка браузерами - -{{Compat}} - -## Смотрите также - -- Интерфейс, определяющий его, {{domxref("CanvasPattern")}} -- {{domxref("SVGMatrix")}} -- {{domxref("DOMMatrix")}} diff --git a/files/ru/web/api/canvasrenderingcontext2d/index.md b/files/ru/web/api/canvasrenderingcontext2d/index.md index 626c3a2bad29f3..233322107fde9f 100644 --- a/files/ru/web/api/canvasrenderingcontext2d/index.md +++ b/files/ru/web/api/canvasrenderingcontext2d/index.md @@ -152,8 +152,6 @@ ctx.fillRect(10, 10, 55, 50); Объекты в контексте рендеринга `CanvasRenderingContext2D` имеют текущую матрицу преобразований и методы для управления ей. Матрица преобразований применяется в момент создания текущего контура по умолчанию, рисования текста, форм и объектов {{domxref("Path2D")}}. Методы, перечисленные ниже, остаются по историческим причинам и из соображений совместимости, в то время как в настоящее время в большинстве разделов API используются объекты {{domxref("SVGMatrix")}}, которые будут использоваться в будущем как замена устаревшим методам. -- {{domxref("CanvasRenderingContext2D.currentTransform")}} - - : Текущая матрица преобразований ({{domxref("SVGMatrix")}} object). - {{domxref("CanvasRenderingContext2D.rotate()")}} - : Добавляет вращение в матрицу преобразований. Аргумент представляет угол вращения по часовой стрелке, выраженный в радианах. - {{domxref("CanvasRenderingContext2D.scale()")}} @@ -275,10 +273,6 @@ ctx.fillRect(10, 10, 55, 50); #### Prefixed APIs -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransform` - - : Sets or gets the current transformation matrix, see {{domxref("CanvasRenderingContext2D.currentTransform")}}. -- {{non-standard_inline}} `CanvasRenderingContext2D.mozCurrentTransformInverse` - - : Sets or gets the current inversed transformation matrix. - {{non-standard_inline}} `CanvasRenderingContext2D.mozFillRule` - : The [fill rule](http://cairographics.org/manual/cairo-cairo-t.html#cairo-fill-rule-t) to use. This must be one of `evenodd` or `nonzero` (default). - {{non-standard_inline}} `CanvasRenderingContext2D.mozImageSmoothingEnabled` From 5ccb11023039a1633495b3bc254528020b9803c8 Mon Sep 17 00:00:00 2001 From: hanyujie2002 Date: Mon, 27 Nov 2023 21:27:18 +0800 Subject: [PATCH 14/55] =?UTF-8?q?zh-TW:=20batch=20update=20"=E6=82=A8"=20w?= =?UTF-8?q?ith=20"=E4=BD=A0"=20(#17132)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/zh-tw/.markdownlint.jsonc | 6 + .../bounce_off_the_walls/index.md | 2 +- .../glossary/block-level_content/index.md | 2 +- files/zh-tw/glossary/seo/index.md | 2 +- .../accessibility/wai-aria_basics/index.md | 2 +- .../css/first_steps/getting_started/index.md | 68 ++++----- files/zh-tw/learn/css/first_steps/index.md | 18 +-- .../css/first_steps/what_is_css/index.md | 22 +-- files/zh-tw/learn/css/index.md | 26 ++-- .../javascript_basics/index.md | 86 ++++++------ files/zh-tw/learn/html/index.md | 2 +- .../document_and_website_structure/index.md | 2 +- .../learn/html/introduction_to_html/index.md | 4 +- .../images_in_html/index.md | 34 ++--- .../html/multimedia_and_embedding/index.md | 18 +-- .../index.md | 22 +-- .../building_blocks/functions/index.md | 2 +- .../building_blocks/looping_code/index.md | 10 +- .../first_steps/a_first_splash/index.md | 6 +- .../javascript/first_steps/math/index.md | 4 +- .../silly_story_generator/index.md | 14 +- .../javascript/first_steps/strings/index.md | 4 +- .../javascript/first_steps/variables/index.md | 14 +- .../adding_bouncing_balls_features/index.md | 2 +- .../learn/performance/multimedia/index.md | 6 +- .../server-side/django/admin_site/index.md | 20 +-- .../django/authentication/index.md | 102 +++++++------- .../django/development_environment/index.md | 54 ++++---- .../django/django_assessment_blog/index.md | 6 +- .../learn/server-side/django/forms/index.md | 16 +-- .../server-side/django/generic_views/index.md | 8 +- .../server-side/django/home_page/index.md | 40 +++--- files/zh-tw/learn/server-side/django/index.md | 6 +- .../server-side/django/introduction/index.md | 20 +-- .../learn/server-side/django/models/index.md | 2 +- .../server-side/django/sessions/index.md | 28 ++-- .../django/skeleton_website/index.md | 10 +- .../express_nodejs/deployment/index.md | 130 +++++++++--------- .../index.md | 2 +- .../server-side/express_nodejs/forms/index.md | 26 ++-- .../express_nodejs/introduction/index.md | 4 +- .../express_nodejs/mongoose/index.md | 100 +++++++------- .../express_nodejs/routes/index.md | 12 +- .../express_nodejs/skeleton_website/index.md | 50 +++---- .../first_steps/introduction/index.md | 4 +- .../angular_building/index.md | 2 +- .../angular_item_component/index.md | 10 +- .../angular_styling/index.md | 4 +- .../angular_todo_list_beginning/index.md | 52 +++---- .../index.md | 6 +- .../react_getting_started/index.md | 4 +- .../react_todo_list_beginning/index.md | 18 +-- .../svelte_variables_props/index.md | 2 +- .../learn/tools_and_testing/github/index.md | 12 +- .../contributing/getting_started/index.md | 22 +-- .../howto/creating_moving_deleting/index.md | 54 ++++---- .../writing_style_guide/index.md | 2 +- files/zh-tw/mozilla/firefox/index.md | 4 +- .../zh-tw/mozilla/firefox/releases/2/index.md | 2 +- files/zh-tw/mozilla/firefox/releases/index.md | 2 +- files/zh-tw/web/api/fullscreen_api/index.md | 18 +-- files/zh-tw/web/api/mediasource/index.md | 2 +- .../zh-tw/web/api/notifications_api/index.md | 2 +- files/zh-tw/web/api/setinterval/index.md | 2 +- .../getting_started_with_webgl/index.md | 8 +- files/zh-tw/web/api/webvtt_api/index.md | 2 +- .../web/api/window/localstorage/index.md | 2 +- .../web/css/animation-fill-mode/index.md | 2 +- files/zh-tw/web/guide/woff/index.md | 2 +- .../index.md | 32 ++--- files/zh-tw/web/html/attributes/index.md | 12 +- .../control_flow_and_error_handling/index.md | 16 +-- .../guide/grammar_and_types/index.md | 6 +- files/zh-tw/web/javascript/guide/index.md | 2 +- .../javascript/guide/introduction/index.md | 4 +- .../guide/regular_expressions/index.md | 4 +- .../javascript/guide/typed_arrays/index.md | 2 +- files/zh-tw/web/javascript/index.md | 4 +- .../web/javascript/reference/classes/index.md | 2 +- .../index.md | 2 +- .../global_objects/array/findindex/index.md | 2 +- .../reference/global_objects/array/index.md | 8 +- .../global_objects/array/isarray/index.md | 2 +- .../global_objects/function/apply/index.md | 2 +- .../global_objects/math/random/index.md | 2 +- .../reference/global_objects/promise/index.md | 12 +- .../reference/global_objects/set/index.md | 2 +- files/zh-tw/web/javascript/reference/index.md | 2 +- .../javascript/reference/operators/index.md | 2 +- files/zh-tw/web/manifest/index.md | 2 +- files/zh-tw/web/performance/index.md | 10 +- files/zh-tw/web/security/index.md | 2 +- .../web/security/insecure_passwords/index.md | 2 +- .../web/svg/tutorial/getting_started/index.md | 2 +- files/zh-tw/webassembly/index.md | 2 +- 95 files changed, 700 insertions(+), 694 deletions(-) diff --git a/files/zh-tw/.markdownlint.jsonc b/files/zh-tw/.markdownlint.jsonc index 0b1ced60fe026d..d765055e49f895 100644 --- a/files/zh-tw/.markdownlint.jsonc +++ b/files/zh-tw/.markdownlint.jsonc @@ -94,6 +94,12 @@ "searchPattern": "/\\]\\(https?:\\/\\/localhost:\\d+\\//g", "replace": "](/", "searchScope": "text" + }, + { + "name": "force-pronoun", + "message": "Consider using '你' instead of '您'", + "searchPattern": "/您/g", + "searchScope": "text" } ] } diff --git a/files/zh-tw/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.md b/files/zh-tw/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.md index 0f3e97815c9158..65cabfe1022722 100644 --- a/files/zh-tw/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.md +++ b/files/zh-tw/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.md @@ -80,7 +80,7 @@ if (y + dy > canvas.height || y + dy < 0) { ![](ball-in-wall.png) -這是因為我們計算的牆壁和球的中心的碰撞點,而我們應該做它的圓周。球應該反彈後,如果接觸牆,而不是當它已經在牆上的一半,所以讓我們調整我們的陳述有點包括。更新您添加到的最後一個代碼: +這是因為我們計算的牆壁和球的中心的碰撞點,而我們應該做它的圓周。球應該反彈後,如果接觸牆,而不是當它已經在牆上的一半,所以讓我們調整我們的陳述有點包括。更新你添加到的最後一個代碼: ```js if (x + dx > canvas.width - ballRadius || x + dx < ballRadius) { diff --git a/files/zh-tw/glossary/block-level_content/index.md b/files/zh-tw/glossary/block-level_content/index.md index f482019e1c30b4..af6eba3ad8a4cd 100644 --- a/files/zh-tw/glossary/block-level_content/index.md +++ b/files/zh-tw/glossary/block-level_content/index.md @@ -5,7 +5,7 @@ slug: Glossary/Block-level_content {{GlossarySidebar}} -HTML(超文字標記語言, **Hypertext Markup Language**)元素通常為『區塊級』元素或是[『行內級』元素](/zh-TW/docs/HTML/Inline_elements)。一個區塊級元素會藉由建立『區塊』的動作,完全佔滿其父元素(容器)的空間。本文將為您說明其意涵. +HTML(超文字標記語言, **Hypertext Markup Language**)元素通常為『區塊級』元素或是[『行內級』元素](/zh-TW/docs/HTML/Inline_elements)。一個區塊級元素會藉由建立『區塊』的動作,完全佔滿其父元素(容器)的空間。本文將為你說明其意涵. 瀏覽器預設以在元素前後換行的方式,表現區塊級元素。視覺上會呈現為一排縱向堆疊的方塊。 diff --git a/files/zh-tw/glossary/seo/index.md b/files/zh-tw/glossary/seo/index.md index 489539be2ce143..2050bd63a99146 100644 --- a/files/zh-tw/glossary/seo/index.md +++ b/files/zh-tw/glossary/seo/index.md @@ -31,4 +31,4 @@ SEO 方法分為三大類: - [什麼是 SEO?由淺入深新手教學](https://seo.whoops.com.tw/what-is-seo/) - [SEO 新手初入門,3 分鐘了解什麼是 SEO 教學](https://techmoon.xyz/what-is-seo/) - [Google Webmaster Central](https://www.google.com/webmasters/) -- [您需要 SEO 嗎? - Search Console 說明](https://support.google.com/webmasters/answer/35291?hl=zh-Hant) +- [你需要 SEO 嗎? - Search Console 說明](https://support.google.com/webmasters/answer/35291?hl=zh-Hant) diff --git a/files/zh-tw/learn/accessibility/wai-aria_basics/index.md b/files/zh-tw/learn/accessibility/wai-aria_basics/index.md index d2721cb0a7ddb8..091e378eefa16f 100644 --- a/files/zh-tw/learn/accessibility/wai-aria_basics/index.md +++ b/files/zh-tw/learn/accessibility/wai-aria_basics/index.md @@ -229,7 +229,7 @@ var intervalID = window.setInterval(showQuote, 10000); > **備註:** 如果你嘗試從 `XMLHttpRequest` 執行 `file://` URL`,`大部分的瀏覽器會拋出安全異常,例如你直接上傳該檔案到瀏覽器(透過雙擊滑鼠鍵等)。為了這項可以執行,你需要將檔案上傳到一個網站伺服器如 [GitHub](/zh-TW/docs/Learn/Common_questions/Tools_and_setup/Using_GitHub_pages),或本機網站伺服器如 [Python's SimpleHTTPServer](http://www.pythonforbeginners.com/modules-in-python/how-to-use-simplehttpserver/)。 -這裡有一項額外的考量—只有文字更新才讀出。如果我們也總是讀出標題,那將很好,以讓使用者記住讀出的內容。為做到這樣,我們可以添加 [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic) 屬性到這個部分,再次更新您的 `
` 標籤如下所示: +這裡有一項額外的考量—只有文字更新才讀出。如果我們也總是讀出標題,那將很好,以讓使用者記住讀出的內容。為做到這樣,我們可以添加 [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic) 屬性到這個部分,再次更新你的 `
` 標籤如下所示: ```html
diff --git a/files/zh-tw/learn/css/first_steps/getting_started/index.md b/files/zh-tw/learn/css/first_steps/getting_started/index.md index 1f3f47dd45bff9..9d4a4684a96df0 100644 --- a/files/zh-tw/learn/css/first_steps/getting_started/index.md +++ b/files/zh-tw/learn/css/first_steps/getting_started/index.md @@ -36,7 +36,7 @@ slug: Learn/CSS/First_steps/Getting_started ## 由某個 HTML 開始 -我們的起點是一個 HTML 文件。如果您想要在自己的電腦上操作,可以把下面的程式碼複製下來。在您電腦上的目錄中,用 `index.html` 為檔名儲存。 +我們的起點是一個 HTML 文件。如果你想要在自己的電腦上操作,可以把下面的程式碼複製下來。在你電腦上的目錄中,用 `index.html` 為檔名儲存。 ```html @@ -68,13 +68,13 @@ slug: Learn/CSS/First_steps/Getting_started ``` -> **備註:** 如果您用來閱讀這篇文章的環境沒辦法簡單地建立檔案,也別擔心。底下會提供線上程式編輯器讓你就在這個頁面中撰寫範例程式。 +> **備註:** 如果你用來閱讀這篇文章的環境沒辦法簡單地建立檔案,也別擔心。底下會提供線上程式編輯器讓你就在這個頁面中撰寫範例程式。 ## 為我們的文件加入 CSS -首先,第一個步驟是告訴 HTML 文件我們有些 CSS 規則要加入。你通常有三種不同的方式來將 CSS 套用到 HTML 文件上,然而,現在我們先將焦點放在其中最常見並且實用的方式:在您文件標頭的位置將 CSS 連結進去。 +首先,第一個步驟是告訴 HTML 文件我們有些 CSS 規則要加入。你通常有三種不同的方式來將 CSS 套用到 HTML 文件上,然而,現在我們先將焦點放在其中最常見並且實用的方式:在你文件標頭的位置將 CSS 連結進去。 -建立一個檔案,存在與您 HTML 文件同一個目錄之中,並命名為 `styles.css` 。副檔名 `.css` 會讓它被當作一個 CSS 檔案。 +建立一個檔案,存在與你 HTML 文件同一個目錄之中,並命名為 `styles.css` 。副檔名 `.css` 會讓它被當作一個 CSS 檔案。 為了連結 `styles.css` 到 `index.html` 中,在 HTML 文件的 {{htmlelement("head")}} 中,加入下面這行: @@ -82,7 +82,7 @@ slug: Learn/CSS/First_steps/Getting_started ``` -{{htmlelement("link")}} 元素使用 `rel` 屬性告訴瀏覽器我們有一個樣式表,接著 `href` 屬性指向到這個樣式表的位置。您可以在 `styles.css` 裡加入規則,來測試它是否能夠運作。使用程式碼編輯器,在您的 CSS 檔案中加入下面這段規則: +{{htmlelement("link")}} 元素使用 `rel` 屬性告訴瀏覽器我們有一個樣式表,接著 `href` 屬性指向到這個樣式表的位置。你可以在 `styles.css` 裡加入規則,來測試它是否能夠運作。使用程式碼編輯器,在你的 CSS 檔案中加入下面這段規則: ```css h1 { @@ -90,13 +90,13 @@ h1 { } ``` -將您的 HTML 與 CSS 檔案儲存後,重新整理瀏覽器裡的頁面。文件中最上頭的第一級標題現在應該會是紅色的。如果是,恭喜!您成功地套到了一些 CSS 設定到 HTML 中了。如果結果不是如此,仔細檢查您的每段文字並確認都輸入正確。 +將你的 HTML 與 CSS 檔案儲存後,重新整理瀏覽器裡的頁面。文件中最上頭的第一級標題現在應該會是紅色的。如果是,恭喜!你成功地套到了一些 CSS 設定到 HTML 中了。如果結果不是如此,仔細檢查你的每段文字並確認都輸入正確。 你可以在你電腦裡的 `styles.css` 上繼續,或是使用我們下的互動編輯器來繼續本教學指引。 互動編輯器的行為,就像是這個 CSS 已經連結到 HTML 中,就如同我們在前面剛剛完成的一樣。 ## 裝飾 HTML 元素 -藉由的將我們的標題設定為紅色,已經證明了我們可以指定並修飾 HTML 元素。我們透過一個*元素選擇器*來達成,它會指定名稱相符的 HTML 元素。想要指向所有段落元素的話,您會將選擇器設為 `p`。要把所有段落文字改成綠色,您會這麼作: +藉由的將我們的標題設定為紅色,已經證明了我們可以指定並修飾 HTML 元素。我們透過一個*元素選擇器*來達成,它會指定名稱相符的 HTML 元素。想要指向所有段落元素的話,你會將選擇器設為 `p`。要把所有段落文字改成綠色,你會這麼作: ```css p { @@ -104,7 +104,7 @@ p { } ``` -藉由逗號的分隔,您可以一次設定多個選擇器。如果我想要讓所有段落與清單項目都變綠色,我的規則會長得像: +藉由逗號的分隔,你可以一次設定多個選擇器。如果我想要讓所有段落與清單項目都變綠色,我的規則會長得像: ```css p, @@ -113,7 +113,7 @@ li { } ``` -在底下的互動式編輯器(編輯程式區塊)中,或是在您本地的 CSS 檔案嘗試編輯看看。 +在底下的互動式編輯器(編輯程式區塊)中,或是在你本地的 CSS 檔案嘗試編輯看看。 {{EmbedGHLiveSample("css-examples/learn/getting-started/started1.html", '100%', 900)}} @@ -121,7 +121,7 @@ li { 當我們看一個標記清楚的 HTML 文件,即便是像我們範例這樣的簡單。能夠看到瀏覽器藉由加上一些預設的樣式讓 HTML 變得可閱讀。標題字體較大且較粗,而清單的項目前添加上符號。會如此表現,是因為瀏覽器裡有包含預設樣式的內部樣式表,它預設會套用到所有的頁面。少了它們的話,所有的內容會全擠在一起,而我們得從頭一個一個設定樣式。所有現代的瀏覽器,預設以很相似的方式來呈現 HTML 內容。 -然而,您通常會想要一些不同於瀏覽器預設的選擇。可以通過選擇想改變的 HTML 元素,使用 CSS 規則來改變它的外觀來達成。拿我們的 `