diff --git a/files/zh-cn/.markdownlint.jsonc b/files/zh-cn/.markdownlint.jsonc
index 6af1da01b2dc36..ecc8e70d1cca1a 100644
--- a/files/zh-cn/.markdownlint.jsonc
+++ b/files/zh-cn/.markdownlint.jsonc
@@ -68,6 +68,20 @@
"replace": "](https://developer.chrome.google.cn/",
"searchScope": "text",
},
+ {
+ "name": "google-dev-mirror-links",
+ "message": "Use the CN mirror site for developers.google.com",
+ "searchPattern": "/\\]\\(https:\\/\\/developers.google.com\\//g",
+ "replace": "](https://developers.google.cn/",
+ "searchScope": "text",
+ },
+ {
+ "name": "web-dev-mirror-links",
+ "message": "Use the CN mirror site for web.dev",
+ "searchPattern": "/\\]\\(https:\\/\\/web.dev\\//g",
+ "replace": "](https://web.developers.google.cn/",
+ "searchScope": "text",
+ },
{
"name": "localhost-links",
"message": "Don't use localhost for links",
diff --git a/files/zh-cn/glossary/api/index.md b/files/zh-cn/glossary/api/index.md
index 9f8dacaef678eb..2481676055b527 100644
--- a/files/zh-cn/glossary/api/index.md
+++ b/files/zh-cn/glossary/api/index.md
@@ -14,7 +14,7 @@ l10n:
例如:
- [getUserMedia API](/zh-CN/docs/Web/API/MediaDevices/getUserMedia) 能被用于从用户的摄像头采集音视频。接下来开发者可以任意使用这些音视频,例如记录视频和音频、在视频会议中向其他用户广播,或者从视频中截图。
-- [Geolocation API](/zh-CN/docs/Web/API/Geolocation) 能被用于从用户的可用的任意定位设备(如 GPS)获取位置信息,然后可以再用 [Google 地图 API](https://developers.google.com/maps/) 将这些位置信息用于在一个自定义的地图上标记出用户的位置和展示用户所在地区的旅游景点。
+- [Geolocation API](/zh-CN/docs/Web/API/Geolocation) 能被用于从用户的可用的任意定位设备(如 GPS)获取位置信息,然后可以再用 [Google 地图 API](https://developers.google.cn/maps/) 将这些位置信息用于在一个自定义的地图上标记出用户的位置和展示用户所在地区的旅游景点。
- [Web Animations API](/zh-CN/docs/Web/API/Web_Animations_API) 能被用于制作一个网页中的动画,例如让网页中的图片移动或旋转。
## 参见
diff --git a/files/zh-cn/glossary/bfcache/index.md b/files/zh-cn/glossary/bfcache/index.md
index 440f7c5916b1ef..0d60717b015c7c 100644
--- a/files/zh-cn/glossary/bfcache/index.md
+++ b/files/zh-cn/glossary/bfcache/index.md
@@ -17,4 +17,4 @@ bfcache 对于性能非常有利,因此有必要确保你的页面不会阻止
## 参见
-- web.dev 上的[后退/前进缓存](https://web.dev/articles/bfcache)(2023)
+- web.developers.google.cn 上的[后退/前进缓存](https://web.developers.google.cn/articles/bfcache)(2023)
diff --git a/files/zh-cn/glossary/cls/index.md b/files/zh-cn/glossary/cls/index.md
index f247d9957e76df..54ef1aef16f6dd 100644
--- a/files/zh-cn/glossary/cls/index.md
+++ b/files/zh-cn/glossary/cls/index.md
@@ -7,7 +7,7 @@ l10n:
{{GlossarySidebar}}
-**累计布局偏移**(CLS)是一种由 Google 设计为[核心 Web 要素](https://web.dev/explore/learn-core-web-vitals)之一的网站的可用性指标。
+**累计布局偏移**(CLS)是一种由 Google 设计为[核心 Web 要素](https://web.developers.google.cn/explore/learn-core-web-vitals)之一的网站的可用性指标。
它可以衡量用户遇到意外布局偏移的程度。这里元素的意外偏移指不是由用户操作(如点按按钮或动画的一部分)引起的偏移。
@@ -17,4 +17,4 @@ l10n:
## 参见
-- web.dev 上的 [CLS](https://web.dev/articles/cls)
+- web.developers.google.cn 上的 [CLS](https://web.developers.google.cn/articles/cls)
diff --git a/files/zh-cn/glossary/fetch_metadata_request_header/index.md b/files/zh-cn/glossary/fetch_metadata_request_header/index.md
index 9305acfe7b3027..8277eabcf2509c 100644
--- a/files/zh-cn/glossary/fetch_metadata_request_header/index.md
+++ b/files/zh-cn/glossary/fetch_metadata_request_header/index.md
@@ -27,7 +27,7 @@ fetch 元数据请求标头:
## 参见
-- [使用 Fetch 元数据保护你的资源免受网络攻击](https://web.dev/articles/fetch-metadata)(web.dev)
+- [使用 Fetch 元数据保护你的资源免受网络攻击](https://web.developers.google.cn/articles/fetch-metadata)(web.developers.google.cn)
- [Fetch 元数据请求标头的 playground](https://secmetadata.appspot.com/)(secmetadata.appspot.com)
- [所有 HTTP 标头列表](/zh-CN/docs/Web/HTTP/Headers)
- [所有 HTTP 标头列表 > Fetch 元数据请求标头](/zh-CN/docs/Web/HTTP/Headers#fetch_元数据请求标头)
diff --git a/files/zh-cn/glossary/first_contentful_paint/index.md b/files/zh-cn/glossary/first_contentful_paint/index.md
index d0384ac26a6010..16ce48bbf40943 100644
--- a/files/zh-cn/glossary/first_contentful_paint/index.md
+++ b/files/zh-cn/glossary/first_contentful_paint/index.md
@@ -17,4 +17,4 @@ l10n:
- [`PerformancePaintTiming`](/zh-CN/docs/Web/API/PerformancePaintTiming)
- [最大内容绘制](/zh-CN/docs/Glossary/Largest_contentful_paint)
- [首次有效绘制](/zh-CN/docs/Glossary/First_meaningful_paint)
-- web.dev 上的[首次内容绘制](https://web.dev/articles/fcp)
+- web.developers.google.cn 上的[首次内容绘制](https://web.developers.google.cn/articles/fcp)
diff --git a/files/zh-cn/glossary/lossless_compression/index.md b/files/zh-cn/glossary/lossless_compression/index.md
index b919b173a28abf..067cc0d78d6dea 100644
--- a/files/zh-cn/glossary/lossless_compression/index.md
+++ b/files/zh-cn/glossary/lossless_compression/index.md
@@ -9,7 +9,7 @@ l10n:
**无损压缩**是一类允许从压缩数据完美地重构原始数据的数据压缩算法。无损压缩方法是可逆的。无损压缩的例子包括 {{glossary("gzip_compression", "gzip")}}、{{glossary("Brotli_compression", "brotli")}}、{{glossary("Zstandard compression", "Zstandard")}}、{{glossary("WebP")}} 和 {{glossary("PNG")}}。
-另一方面,{{glossary("Lossy compression", "有损压缩")}}使用不精确的近似值(从原始文件中丢弃一些数据),使其成为一种不可逆转的压缩方法。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.com/speed/webp/docs/compression)。
+另一方面,{{glossary("Lossy compression", "有损压缩")}}使用不精确的近似值(从原始文件中丢弃一些数据),使其成为一种不可逆转的压缩方法。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.cn/speed/webp/docs/compression)。
## 参见
diff --git a/files/zh-cn/glossary/lossy_compression/index.md b/files/zh-cn/glossary/lossy_compression/index.md
index ba42a77a4b3374..4892a10a49c7fe 100644
--- a/files/zh-cn/glossary/lossy_compression/index.md
+++ b/files/zh-cn/glossary/lossy_compression/index.md
@@ -9,7 +9,7 @@ l10n:
**有损压缩**,又称为不可逆压缩,是一种数据压缩方法,它使用不精确的近似值和部分数据丢弃来表示内容。简单来说:有损压缩导致原始文件中的数据丢失,可能导致质量下降。这种压缩过程是不可逆的;一旦对内容进行了有损压缩,就无法将内容恢复到原始状态。因此,经过有损压缩的内容通常不应再进一步编辑。
-有损压缩在诸如 {{glossary("JPEG")}}、{{glossary("WebP")}} 等图像格式以及音频和视频格式(如 [MP3、MP4、H.264 等](/zh-CN/docs/Web/HTTP/MIME_types/Common_types))中被广泛使用。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.com/speed/webp/docs/compression)。
+有损压缩在诸如 {{glossary("JPEG")}}、{{glossary("WebP")}} 等图像格式以及音频和视频格式(如 [MP3、MP4、H.264 等](/zh-CN/docs/Web/HTTP/MIME_types/Common_types))中被广泛使用。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.cn/speed/webp/docs/compression)。
![有损压缩的图像](2019-11-18.png)
diff --git a/files/zh-cn/glossary/progressive_web_apps/index.md b/files/zh-cn/glossary/progressive_web_apps/index.md
index a268959f4a1d5d..70299b055cb782 100644
--- a/files/zh-cn/glossary/progressive_web_apps/index.md
+++ b/files/zh-cn/glossary/progressive_web_apps/index.md
@@ -16,4 +16,4 @@ l10n:
## 参见
- MDN 上的[渐进式 Web 应用程序](/zh-CN/docs/Web/Progressive_web_apps)
-- web.dev 上的[渐进式 Web 应用程序](https://web.dev/explore/progressive-web-apps)
+- web.developers.google.cn 上的[渐进式 Web 应用程序](https://web.developers.google.cn/explore/progressive-web-apps)
diff --git a/files/zh-cn/glossary/seo/index.md b/files/zh-cn/glossary/seo/index.md
index 596ed8ea76ce1f..a4cf70624fefc8 100644
--- a/files/zh-cn/glossary/seo/index.md
+++ b/files/zh-cn/glossary/seo/index.md
@@ -25,4 +25,4 @@ SEO 方法分为三大类:
## 参见
- 维基百科上的 [SEO](https://zh.wikipedia.org/wiki/搜尋引擎最佳化)
-- [Google 搜索中心](https://developers.google.com/search/docs)
+- [Google 搜索中心](https://developers.google.cn/search/docs)
diff --git a/files/zh-cn/glossary/time_to_interactive/index.md b/files/zh-cn/glossary/time_to_interactive/index.md
index e5cf5ec35dc597..5929602750a680 100644
--- a/files/zh-cn/glossary/time_to_interactive/index.md
+++ b/files/zh-cn/glossary/time_to_interactive/index.md
@@ -19,4 +19,4 @@ TTI 是通过利用[长任务 API](/zh-CN/docs/Web/API/PerformanceLongTaskTiming
- Web 孵化器社区组关于 [TTI 的定义](https://github.com/WICG/time-to-interactive)
- Radimir Bitsov 写的[可交互时间——以人为本的单位](https://calibreapp.com/blog/time-to-interactive)
-- [计算 TTI](https://web.dev/articles/user-centric-performance-metrics#tracking_tti)
+- [计算 TTI](https://web.developers.google.cn/articles/user-centric-performance-metrics)
diff --git a/files/zh-cn/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md b/files/zh-cn/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md
index 976e7b93cff377..350c1eeeaa54e6 100644
--- a/files/zh-cn/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md
+++ b/files/zh-cn/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md
@@ -144,8 +144,7 @@ Firefox 的 JavaScript 调试器有三个面板。
了解不同浏览器中的 JavaScript 调试器:
- [Firefox JavaScript 调试器](https://firefox-source-docs.mozilla.org/devtools-user/debugger/index.html)
-- [Microsoft Edge 调试器](https://docs.microsoft.com/archive/microsoft-edge/legacy/developer/devtools-guide/debugger)
-- [Chrome 调试器](https://developers.google.com/web/tools/chrome-devtools/javascript/)
+- [Chrome 调试器](https://developer.chrome.google.cn/docs/devtools/javascript/)
- [Safari 调试器](https://developer.apple.com/safari/tools/)
## JavaScript 控制台
diff --git a/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md b/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md
index 834f6e8763f984..1a378684940cd4 100644
--- a/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md
+++ b/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md
@@ -169,7 +169,7 @@ say=Hi&to=Mom
#### 查看 HTTP 请求
-HTTP 请求永远不会显示给用户 (如果你想要看到它们,你需要使用诸如[Firefox Network Monitor](/zh-CN/docs/Tools/Network_Monitor)或[Chrome Developer Tools](https://developers.google.com/chrome-developer-tools/)之类的工具)。例如,你的表单数据将显示在 Chrome 网络选项卡中:
+HTTP 请求永远不会显示给用户 (如果你想要看到它们,你需要使用诸如 [Firefox 网络监视器](https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/index.html)或 [Chrome 开发者工具](https://developer.chrome.google.cn/docs/devtools/)之类的工具)。例如,你的表单数据将显示在 Chrome 网络选项卡中:
1. 按下 F12
2. 选择 "Network"
diff --git a/files/zh-cn/learn/getting_started_with_the_web/dealing_with_files/index.md b/files/zh-cn/learn/getting_started_with_the_web/dealing_with_files/index.md
index 6a4bcc9adf9911..75d90d27a08465 100644
--- a/files/zh-cn/learn/getting_started_with_the_web/dealing_with_files/index.md
+++ b/files/zh-cn/learn/getting_started_with_the_web/dealing_with_files/index.md
@@ -28,7 +28,7 @@ l10n:
文件名也会映射为 URL。例如,假设在你的服务器提供服务的根目录下有一个名为 `my_file.html` 的文件,根据大多数 Web 服务器的默认行为,一般是可以通过 `https://example.com/my_file.html` 访问这个文件。一些服务器会将文件名中的空格替换为“%20”(URL 中空格的字符代码),在假定文件名和 URL 完全匹配的情况下,会出现一些难以捉摸的服务器端逻辑错误。
-也建议文件名使用连字符分割单词,而不是下划线:对比 `my-file.html` 和 `my_file.html`。[谷歌搜索引擎把连字符当作单词的分隔符,但不会把下划线当作单词的分隔符](https://developers.google.com/search/docs/crawling-indexing/url-structure)。通过服务器配置将下划线替换为连字符能避免这种情况,但那是额外的工作并且文件名和 URL 不一致更容易出错。
+也建议文件名使用连字符分割单词,而不是下划线:对比 `my-file.html` 和 `my_file.html`。[谷歌搜索引擎把连字符当作单词的分隔符,但不会把下划线当作单词的分隔符](https://developers.google.cn/search/docs/crawling-indexing/url-structure)。通过服务器配置将下划线替换为连字符能避免这种情况,但那是额外的工作并且文件名和 URL 不一致更容易出错。
基于这些原因,最好养成文件夹名和文件名使用小写、不带空格、用连字符分隔单词的习惯,至少直到你清楚自己在做什么的那个时候。那样的话,在接下来的旅程中,你遇到的问题会更少。
diff --git a/files/zh-cn/learn/getting_started_with_the_web/what_will_your_website_look_like/index.md b/files/zh-cn/learn/getting_started_with_the_web/what_will_your_website_look_like/index.md
index 9e1bb77edb2547..a471c2e6e80893 100644
--- a/files/zh-cn/learn/getting_started_with_the_web/what_will_your_website_look_like/index.md
+++ b/files/zh-cn/learn/getting_started_with_the_web/what_will_your_website_look_like/index.md
@@ -62,7 +62,7 @@ _你的网站会是什么样子_?讨论的是你编写代码之前不得不为
### 字体
-和图片一样,很多字体都受版权保护,也就是说,你不可以在你的网站上随意使用它们。[Google Fonts](https://developers.google.com/fonts) 是 Google 旗下的提供许多字体许可的 Web 服务。
+和图片一样,很多字体都受版权保护,也就是说,你不可以在你的网站上随意使用它们。[Google Fonts](https://developers.google.cn/fonts) 是 Google 旗下的提供许多字体许可的 Web 服务。
选好字体后,你有两种主要的使用方式:
diff --git a/files/zh-cn/learn/javascript/client-side_web_apis/client-side_storage/index.md b/files/zh-cn/learn/javascript/client-side_web_apis/client-side_storage/index.md
index 626deffb063828..a9c2aa084da5ad 100644
--- a/files/zh-cn/learn/javascript/client-side_web_apis/client-side_storage/index.md
+++ b/files/zh-cn/learn/javascript/client-side_web_apis/client-side_storage/index.md
@@ -735,7 +735,7 @@ self.addEventListener("fetch", (e) => {
});
```
-这就是我们的 service worker。你可以使用它们处理更多的负载——有关详细信息,请参阅 [service worker 手册](https://github.com/mdn/serviceworker-cookbook/)。感谢 Paul Kinlan 的[为你的 Web 应用程序添加 service worker 和离线浏览](https://developers.google.com/web/fundamentals/codelabs/offline/)一文给予这一简单示例的启发。
+这就是我们的 service worker。你可以使用它们处理更多的负载——有关详细信息,请参阅 [service worker 手册](https://github.com/mdn/serviceworker-cookbook/)。感谢 Paul Kinlan 的[为你的 Web 应用程序添加 service worker 和离线浏览](https://developers.google.cn/codelabs/pwa-training/pwa03--going-offline#0)一文给予这一简单示例的启发。
#### 测试离线示例
diff --git a/files/zh-cn/learn/javascript/client-side_web_apis/introduction/index.md b/files/zh-cn/learn/javascript/client-side_web_apis/introduction/index.md
index 9ad3a81b76a45c..e19d62786cd6aa 100644
--- a/files/zh-cn/learn/javascript/client-side_web_apis/introduction/index.md
+++ b/files/zh-cn/learn/javascript/client-side_web_apis/introduction/index.md
@@ -50,7 +50,7 @@ _图片来自:[过载的插头接口](https://www.flickr.com/photos/easy-pics/
客户端 JavaScript 中有很多可用的 API。它们本身并不属于 JavaScript 语言,却建立在核心 JavaScript 语言之上,为使用 JavaScript 代码提供额外的超强能力。它们通常分为两类:
- **浏览器 API** 内置于 Web 浏览器中,能从浏览器和电脑周边环境中提取数据,并用来做有用的复杂的事情。例如,[Web 音频 API](/zh-CN/docs/Web/API/Web_Audio_API) 为在浏览器中处理音频提供了 JavaScript 结构——获取音轨、改变音量、应用特效等。在后台,浏览器实际上使用了一些复杂的低级代码(如 C++ 或 Rust)来进行实际的音频处理。但同样,这种复杂性已被应用程序接口抽象化。
-- **第三方 API** 缺省情况下不会内置于浏览器中,通常必须在 Web 中的某个地方获取代码和信息。例如,[Google Maps API](https://developers.google.com/maps/documentation/javascript) 使你能够执行诸如在网站上显示办公室的交互式地图之类的操作。它提供一系列特殊的结构,可以用来查询 Google 地图服务并返回特定信息。
+- **第三方 API** 缺省情况下不会内置于浏览器中,通常必须在 Web 中的某个地方获取代码和信息。例如,[Google Maps API](https://developers.google.cn/maps/documentation/javascript) 使你能够执行诸如在网站上显示办公室的交互式地图之类的操作。它提供一系列特殊的结构,可以用来查询 Google 地图服务并返回特定信息。
![打开 Firefox 浏览器主页时的浏览器截图。默认情况下,浏览器内置了应用程序接口。第三方应用程序接口并非默认内置在浏览器中。要使用它们,必须从网络上的某个地方获取它们的代码和信息。](browser.png)
@@ -83,10 +83,10 @@ _图片来自:[过载的插头接口](https://www.flickr.com/photos/easy-pics/
第三方 API 种类繁多; 下列是一些比较流行的你可能迟早会用到的第三方 API:
-- 地图 API(例如 [Mapquest](https://developer.mapquest.com/) 和 [Google Maps API](https://developers.google.com/maps/)),允许你在网页上对地图执行多种操作。
+- 地图 API(例如 [Mapquest](https://developer.mapquest.com/) 和 [Google Maps API](https://developers.google.cn/maps/)),允许你在网页上对地图执行多种操作。
- [Facebook API 套件](https://developers.facebook.com/docs/),允许你将 Facebook 生态系统中的各个部分应用到你的应用并使之受益,比如说它提供了通过 Facebook 账户登录、接受应用内支付、推送有针对性的广告活动等功能。
- [Telegram API](https://core.telegram.org/api),允许你在网站中潜入来自 Telegram 频道的内容,此外还提供了对机器人的支持。
-- [YouTube API](https://developers.google.com/youtube/),允许你将 Youtube 上的视频嵌入到网站中去,同时提供搜索 Youtube、创建播放列表等众多功能。
+- [YouTube API](https://developers.google.cn/youtube/),允许你将 Youtube 上的视频嵌入到网站中去,同时提供搜索 Youtube、创建播放列表等众多功能。
- [Pinterest API](https://developers.pinterest.com/),提供了管理 Pinterest 图板和图钉的工具,以便将它们纳入你的网站。
- [Twilio API](https://www.twilio.com/docs),为你的应用提供了针对语音通话和视频聊天的框架,以及从你的 app 发送短信息或多媒体信息等诸多功能。
- [Disqus API](https://disqus.com/api/docs/),提供了一个可集成到网站中的评论平台。
diff --git a/files/zh-cn/learn/javascript/client-side_web_apis/third_party_apis/index.md b/files/zh-cn/learn/javascript/client-side_web_apis/third_party_apis/index.md
index fd2b6380963193..dc89635bb94da8 100644
--- a/files/zh-cn/learn/javascript/client-side_web_apis/third_party_apis/index.md
+++ b/files/zh-cn/learn/javascript/client-side_web_apis/third_party_apis/index.md
@@ -34,7 +34,7 @@ l10n:
## 什么是第三方 API?
-第三方 API 是由第三方(通常是 Facebook、Twitter 或 Google 等公司)提供的 API,允许你通过 JavaScript 访问其功能,并在你自己的站点上使用它。最显著的一个示例就是运用 [Google 地图 API](https://developers.google.com/maps/) 在你的网页上展示自定义地图。
+第三方 API 是由第三方(通常是 Facebook、Twitter 或 Google 等公司)提供的 API,允许你通过 JavaScript 访问其功能,并在你自己的站点上使用它。最显著的一个示例就是运用 [Google 地图 API](https://developers.google.cn/maps/) 在你的网页上展示自定义地图。
让我们再来看看这个[简单的 Mapquest API 示例](https://github.com/mdn/learning-area/tree/main/javascript/apis/third-party-apis/mapquest),并用它来说明第三方 API 接口与浏览器 API 接口的区别。
@@ -379,8 +379,8 @@ function displayResults(json) {
我们还为你构建了另一个示例供你学习——请参阅我们的 [YouTube 视频搜索示例](https://mdn.github.io/learning-area/javascript/apis/third-party-apis/youtube/)。这个示例使用了两个相关的 API:
-- [YouTube Data API](https://developers.google.com/youtube/v3/docs/) 搜索 YouTube 视频并返回结果。
-- [YouTube IFrame Player API](https://developers.google.com/youtube/iframe_api_reference) 在 IFrame 视频播放器中显示返回的视频示例,以便你可以观看它们。
+- [YouTube Data API](https://developers.google.cn/youtube/v3/docs/) 搜索 YouTube 视频并返回结果。
+- [YouTube IFrame Player API](https://developers.google.cn/youtube/iframe_api_reference) 在 IFrame 视频播放器中显示返回的视频示例,以便你可以观看它们。
这个示例很有趣,因为它展示了两个相关的第三方 API 被一起使用来构建一个应用程序。第一个是一个 RESTful API,而第二个是一个更像 Mapquest 的 API(带有 API 相关的方法等)。值得一提的是,这两个 API 都需要将 JavaScript 库应用到页面中。RESTful API 有可用的函数来处理 HTTP 请求并返回结果。
@@ -388,7 +388,7 @@ function displayResults(json) {
要运行它,你需要:
-- 阅读 [YouTube Data API 概述](https://developers.google.com/youtube/v3/getting-started)文档。
+- 阅读 [YouTube Data API 概述](https://developers.google.cn/youtube/v3/getting-started)文档。
- 访问[启用的 API](https://console.cloud.google.com/apis/enabled)页面,并在 API 列表中确保 YouTube Data API v3 的状态为 ON。
- 从 [Google Cloud](https://cloud.google.com/) 获取 API 密钥。
- 在源代码中找到字符串 `ENTER-API-KEY-HERE`,并用你的 API 密钥替换它。
diff --git a/files/zh-cn/learn/javascript/first_steps/what_is_javascript/index.md b/files/zh-cn/learn/javascript/first_steps/what_is_javascript/index.md
index 290412060f85b1..939cc28a0712a8 100644
--- a/files/zh-cn/learn/javascript/first_steps/what_is_javascript/index.md
+++ b/files/zh-cn/learn/javascript/first_steps/what_is_javascript/index.md
@@ -106,7 +106,7 @@ API 通常分为两类。
**第三方 API** 并没有默认嵌入浏览器中,一般要从网上取得它们的代码和信息。比如:
- [Twitter API](https://developer.twitter.com/en/docs)、[新浪微博 API](https://open.weibo.com/) 可以在网站上展示最新推文之类。
-- [谷歌地图 API](https://developers.google.com/maps/)、[OpenStreetMap API](https://wiki.openstreetmap.org/wiki/API)、[高德地图 API](https://lbs.amap.com/) 可以在网站嵌入定制的地图等等。
+- [谷歌地图 API](https://developers.google.cn/maps/)、[OpenStreetMap API](https://wiki.openstreetmap.org/wiki/API)、[高德地图 API](https://lbs.amap.com/) 可以在网站嵌入定制的地图等等。
> [!NOTE]
> 这些 API 为进阶内容,本模块中不会涉及,更多信息请参考:[客户端 web API 模块](/zh-CN/docs/Learn/JavaScript/Client-side_web_APIs)。
diff --git a/files/zh-cn/learn/performance/css/index.md b/files/zh-cn/learn/performance/css/index.md
index 59e22bafd5a907..93449fe55e38ff 100644
--- a/files/zh-cn/learn/performance/css/index.md
+++ b/files/zh-cn/learn/performance/css/index.md
@@ -117,7 +117,7 @@ slug: Learn/Performance/CSS
使用 `preload`,浏览器会尽快获取引用的资源,并将其存储在浏览器缓存中,以便在后续代码中引用时可以更快地使用它们。为了让用户体验尽可能流畅,我们应提前加载页面加载初期用户会遇到的高优先级资源。请注意,你还可以使用 `media` 属性创建响应式的预加载器。
- 另请参阅[预加载重要资源以提升加载速度](https://web.dev/articles/preload-critical-assets)这篇 web.dev 上的文章(2020)。
+ 另请参阅[预加载重要资源以提升加载速度](https://web.developers.google.cn/articles/preload-critical-assets)这篇 web.developers.google.cn 上的文章(2020)。
## 处理动画
@@ -227,7 +227,7 @@ h3 {
你还可以考虑以下几点:
-- 使用 [`rel="preconnect"`](/zh-CN/docs/Web/HTML/Attributes/rel/preconnect) 与字体提供方建立早期连接。有关详细信息,请参阅[预连接到关键的第三方源](https://web.dev/articles/font-best-practices#preconnect_to_critical_third-party_origins)。
+- 使用 [`rel="preconnect"`](/zh-CN/docs/Web/HTML/Attributes/rel/preconnect) 与字体提供方建立早期连接。有关详细信息,请参阅[预连接到关键的第三方源](https://web.developers.google.cn/articles/font-best-practices#preconnect_to_critical_third-party_origins)。
- 使用 [CSS 字体加载 API](/zh-CN/docs/Web/API/CSS_Font_Loading_API) 通过 JavaScript 自定义字体加载行为。
### 只加载所需的字形
@@ -286,5 +286,5 @@ article {
## 参见
- [CSS 动画性能](/zh-CN/docs/Web/Performance/CSS_JavaScript_animation_performance)
-- [字体最佳实践](https://web.dev/articles/font-best-practices)(来自 web.dev,2022)
-- [content-visibility:提升渲染性能的新 CSS 属性](https://web.dev/articles/content-visibility)(来自 web.dev,2022)
+- [字体最佳实践](https://web.developers.google.cn/articles/font-best-practices)(来自 web.developers.google.cn,2022)
+- [content-visibility:提升渲染性能的新 CSS 属性](https://web.developers.google.cn/articles/content-visibility)(来自 web.developers.google.cn,2022)
diff --git a/files/zh-cn/learn/performance/html/index.md b/files/zh-cn/learn/performance/html/index.md
index b77ee7cf44082f..9b48a9b85f0812 100644
--- a/files/zh-cn/learn/performance/html/index.md
+++ b/files/zh-cn/learn/performance/html/index.md
@@ -139,7 +139,7 @@ HTML 默认情况下快速且易于访问。作为开发者,我们的工作是
```
-详细信息请参见 web.dev 上的[浏览器级 web 图像懒加载](https://web.dev/articles/browser-level-image-lazy-loading)。
+详细信息请参见 web.dev 上的[浏览器级 web 图像懒加载](https://web.developers.google.cn/articles/browser-level-image-lazy-loading)。
你还可以使用 `preload` 属性来对视频内容进行延迟加载。例如:
@@ -152,7 +152,7 @@ HTML 默认情况下快速且易于访问。作为开发者,我们的工作是
将 `preload` 的值设置为 `none` 告诉浏览器在用户决定播放视频之前不要预加载任何视频数据,这对性能显然是有益的。相反,它只会显示由 `poster` 属性指示的图像。不同的浏览器具有不同的默认视频加载行为,因此最好明确指定。
-详细信息请参见 web.dev 上的[视频懒加载](https://web.dev/articles/lazy-loading-video)。
+详细信息请参见 web.dev 上的[视频懒加载](https://web.developers.google.cn/articles/lazy-loading-video)。
## 处理嵌入内容
@@ -185,7 +185,7 @@ HTML 默认情况下快速且易于访问。作为开发者,我们的工作是
```
-详情请参阅[是时候延迟加载屏外 iframe 了!](https://web.dev/articles/iframe-lazy-loading)。
+详情请参阅[是时候延迟加载屏外 iframe 了!](https://web.developers.google.cn/articles/iframe-lazy-loading)。
## 处理资源加载顺序
@@ -260,7 +260,7 @@ pElem.addEventListener("click", () => {
有关使用 `rel="preload"` 的详细信息,请参阅以下文章:
- [`rel="preload"`](/zh-CN/docs/Web/HTML/Attributes/rel/preload)
-- [预加载关键资源以提高加载速度](https://web.dev/articles/preload-critical-assets) web.dev(2020)
+- [预加载关键资源以提高加载速度](https://web.developers.google.cn/articles/preload-critical-assets) web.developers.google.cn(2020)
> [!NOTE]
> 你还可以使用 `rel="preload"` 预加载 CSS 和 JavaScript 文件。
diff --git a/files/zh-cn/learn/performance/javascript/index.md b/files/zh-cn/learn/performance/javascript/index.md
index 47327bc3d9f3ac..3b6a7019b0b2d3 100644
--- a/files/zh-cn/learn/performance/javascript/index.md
+++ b/files/zh-cn/learn/performance/javascript/index.md
@@ -332,7 +332,7 @@ elem.removeEventListener("mousemove", handleMouseMove);
## 参见
-- [优化长任务](https://web.dev/articles/optimize-long-tasks)(web.dev,2022 年)
+- [优化长任务](https://web.developers.google.cn/articles/optimize-long-tasks)(web.developers.google.cn,2022 年)
- [Canvas 教程](/zh-CN/docs/Web/API/Canvas_API/Tutorial)
{{PreviousMenuNext("Learn/Performance/video", "Learn/Performance/HTML", "Learn/Performance")}}
diff --git a/files/zh-cn/learn/performance/web_performance_basics/index.md b/files/zh-cn/learn/performance/web_performance_basics/index.md
index fb69bb183fec09..2275e4da3777ba 100644
--- a/files/zh-cn/learn/performance/web_performance_basics/index.md
+++ b/files/zh-cn/learn/performance/web_performance_basics/index.md
@@ -5,7 +5,7 @@ slug: Learn/Performance/Web_Performance_Basics
{{LearnSidebar}}
-有很多的[理由](https://developers.google.com/web/fundamentals/performance/why-performance-matters/)告诉你为什么你的网站需要尽可能好的性能。下面是关于最佳实践,工具,API 以及链接的简明介绍,它为每个主题提供了更多的信息。意识到对用户来说什么是真正重要的也至关重要,他可能不是绝对意义上的时间而是[用户感知的时间](/zh-CN/docs/Learn/Performance/perceived_performance)。
+有很多的[理由](https://web.developers.google.cn/learn/performance/why-speed-matters)告诉你为什么你的网站需要尽可能好的性能。下面是关于最佳实践,工具,API 以及链接的简明介绍,它为每个主题提供了更多的信息。意识到对用户来说什么是真正重要的也至关重要,他可能不是绝对意义上的时间而是[用户感知的时间](/zh-CN/docs/Learn/Performance/perceived_performance)。
#### 最佳实践
@@ -22,8 +22,8 @@ slug: Learn/Performance/Web_Performance_Basics
#### 工具
- 学习使用[Firefox Dev Tools](/zh-CN/docs/Tools/Performance)来分析你的网站。
-- [Pagespeed Insights](https://developers.google.com/speed/docs/insights/v5/about) 可以分析你的页面并且给出一些通用的建议来提升网站性能。
-- [Lighthouse](https://developers.google.com/web/tools/lighthouse/) 可以给你一份有关你网站的包括性能,SEO 和无障碍等多个方面的详细分类。
+- [Pagespeed Insights](https://developers.google.cn/speed/docs/insights/v5/about) 可以分析你的页面并且给出一些通用的建议来提升网站性能。
+- [Lighthouse](https://developers.google.cn/web/tools/lighthouse/) 可以给你一份有关你网站的包括性能,SEO 和无障碍等多个方面的详细分类。
- 使用 [Webpagetest.org](http://webpagetest.org/)检测页面在不同真实设备类型和地点时候的速度。trics.
- 定义一个绩效预算([performance budget](/zh-CN/docs/Web/Performance/Performance_budget))。
diff --git a/files/zh-cn/web/api/abortsignal/index.md b/files/zh-cn/web/api/abortsignal/index.md
index e6f1a3b29cfb07..d1eed4b8de7f39 100644
--- a/files/zh-cn/web/api/abortsignal/index.md
+++ b/files/zh-cn/web/api/abortsignal/index.md
@@ -146,4 +146,4 @@ try {
## 参见
- [Fetch API](/zh-CN/docs/Web/API/Fetch_API)
-- [Abortable Fetch](https://developers.google.com/web/updates/2017/09/abortable-fetch) by Jake Archibald
+- [可取消的 Fetch](https://developer.chrome.google.cn/blog/abortable-fetch/),来自 Jake Archibald
diff --git a/files/zh-cn/web/api/abortsignal/timeout_static/index.md b/files/zh-cn/web/api/abortsignal/timeout_static/index.md
index aa6fa3abb7ec51..a4985ba6c608fc 100644
--- a/files/zh-cn/web/api/abortsignal/timeout_static/index.md
+++ b/files/zh-cn/web/api/abortsignal/timeout_static/index.md
@@ -9,7 +9,7 @@ slug: Web/API/AbortSignal/timeout_static
信号在超时时使用 `TimeoutError` {{domxref("DOMException")}} 中止,或者由于按下一个浏览器停止按钮(或者一些内置的“停止”操作)而使用 `AbortError` {{domxref("DOMException")}} 中止。这允许 UI 区分超时错误(通常需要通知用户)和用户触发的错误(不需要通知用户)。
-超时将基于活动的时间,而不是经过的时间,如果代码在指定的 worker 中运行或者文档在往返缓存时([bfcache](https://web.dev/articles/bfcache)),将有效地暂停。
+超时将基于活动的时间,而不是经过的时间,如果代码在指定的 worker 中运行或者文档在往返缓存时([bfcache](https://web.developers.google.cn/articles/bfcache)),将有效地暂停。
> [!NOTE]
> 在编写代码时,无法组合多个信号。意思是你不能使用超时的 signal 或者通过调用 {{domxref("AbortController.abort()")}} 直接中止下载。
diff --git a/files/zh-cn/web/api/attribution_reporting_api/generating_reports/index.md b/files/zh-cn/web/api/attribution_reporting_api/generating_reports/index.md
index 1586a30982b5aa..fb6c0f1823f8cf 100644
--- a/files/zh-cn/web/api/attribution_reporting_api/generating_reports/index.md
+++ b/files/zh-cn/web/api/attribution_reporting_api/generating_reports/index.md
@@ -29,7 +29,7 @@ l10n:
- 对于[基于事件的来源](/zh-CN/docs/Web/API/Attribution_Reporting_API/Registering_sources#基于事件的归因来源),默认报告窗口在来源的 `"expiry"` 到期时结束,该值在 `Attribution-Reporting-Register-Source` 的 [`"expiry"`](/zh-CN/docs/Web/HTTP/Headers/Attribution-Reporting-Register-Source#expiry) 字段中设置。如果未显式设置,则默认为注册后 30 天。
- 对于[基于导航的来源](/zh-CN/docs/Web/API/Attribution_Reporting_API/Registering_sources#基于导航的归因来源),默认报告窗口分别为 2 天、7 天和来源的 `"expiry"`。
-有关详细信息,请参阅[自定义报告窗口](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/custom-report-windows)。
+有关详细信息,请参阅[自定义报告窗口](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/custom-report-windows)。
一旦事件级报告到达相应的端点,数据如何处理、存储和显示完全取决于开发者。一个典型的事件级报告可能如下所示:
@@ -70,11 +70,11 @@ l10n:
## 汇总报告
-汇总报告是从收到的多个可汇总报告创建的,并随后[批处理](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/summary-reports-intro#batching)以准备由[汇总服务](https://developers.google.com/privacy-sandbox/private-advertising/aggregation-service)处理。此后,数据如何处理、存储和显示完全取决于开发者。
+汇总报告是从收到的多个可汇总报告创建的,并随后[批处理](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/summary-reports-intro#batching)以准备由[汇总服务](https://developers.google.cn/privacy-sandbox/private-advertising/aggregation-service)处理。此后,数据如何处理、存储和显示完全取决于开发者。
默认情况下,可汇总报告是在触发器交互后生成并计划发送的,带有随机延迟以帮助模糊时序并提高隐私性。对于给定的已注册归因来源,从注册到来源过期期间会记录归因来源事件——这称为**报告窗口**。
-到期时间由关联的 {{httpheader("Attribution-Reporting-Register-Source")}} 标头中的 `expiry` 值定义,如果未明确设置,则默认为注册后 30 天。请注意,可以通过在 `Attribution-Reporting-Register-Source` 标头中设置 `aggregatable_report_window` 值来进一步修改报告窗口的长度。有关详细信息,请参阅[自定义报告窗口](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/custom-report-windows)。
+到期时间由关联的 {{httpheader("Attribution-Reporting-Register-Source")}} 标头中的 `expiry` 值定义,如果未明确设置,则默认为注册后 30 天。请注意,可以通过在 `Attribution-Reporting-Register-Source` 标头中设置 `aggregatable_report_window` 值来进一步修改报告窗口的长度。有关详细信息,请参阅[自定义报告窗口](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/custom-report-windows)。
> [!NOTE]
> 为了进一步保护用户隐私,每个归因来源相关的汇总报告值具有有限的总值——这称为**贡献预算**。此值可能因 API 的不同实现而有所不同;在 Chrome 中为 65,536。任何会生成报告从而导致的总值超出此限制的转化将不被记录。请确保跟踪预算并在你尝试测量的不同指标之间共享它。
@@ -151,9 +151,9 @@ l10n:
关于归因报告中噪声的工作原理,请参见:
-- [理解汇总报告中的噪声](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/understanding-noise)
+- [理解汇总报告中的噪声](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/understanding-noise)
- [数据限制和噪声](https://github.com/WICG/attribution-reporting-api/blob/main/EVENT.md#data-limits-and-noise)
-- [处理噪声](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/working-with-noise)
+- [处理噪声](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/working-with-noise)
## 报告优先级和限制
@@ -303,6 +303,6 @@ l10n:
有关更多信息和示例,请参见:
-- developers.google.com 上的[调试报告介绍](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/)(2023)
-- developers.google.com 上的[设置调试报告](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/part-2/)(2023)
-- developers.google.com 上的[调试宝典](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/part-3/)(2023)
+- developers.google.cn 上的[调试报告介绍](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/)(2023)
+- developers.google.cn 上的[设置调试报告](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/part-2/)(2023)
+- developers.google.cn 上的[调试宝典](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/attribution-reporting-debugging/part-3/)(2023)
diff --git a/files/zh-cn/web/api/attribution_reporting_api/index.md b/files/zh-cn/web/api/attribution_reporting_api/index.md
index 22dc0fa6fb70c8..d486e01af87a18 100644
--- a/files/zh-cn/web/api/attribution_reporting_api/index.md
+++ b/files/zh-cn/web/api/attribution_reporting_api/index.md
@@ -112,6 +112,6 @@ l10n:
## 参见
- [归因报告标头验证工具](https://wicg.github.io/attribution-reporting-api/validate-headers)
-- developers.google.com 上的[归因报告](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/)(2023)
-- developers.google.com 上的[启用转化测量](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/enable-conversion-measurement)(2023)
-- developers.google.com 上的[隐私沙盒](https://developers.google.com/privacy-sandbox/)(2023)
+- developers.google.cn 上的[归因报告](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/)(2023)
+- developers.google.cn 上的[启用转化测量](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/enable-conversion-measurement)(2023)
+- developers.google.cn 上的[隐私沙盒](https://developers.google.cn/privacy-sandbox/)(2023)
diff --git a/files/zh-cn/web/api/attribution_reporting_api/registering_triggers/index.md b/files/zh-cn/web/api/attribution_reporting_api/registering_triggers/index.md
index b0863f67f8cc77..b0dc6b4d34195e 100644
--- a/files/zh-cn/web/api/attribution_reporting_api/registering_triggers/index.md
+++ b/files/zh-cn/web/api/attribution_reporting_api/registering_triggers/index.md
@@ -50,7 +50,7 @@ l10n:
> [!NOTE]
> 用于表示每个事件的值以及数组中的元素数量完全是任意的,由作为开发人员的你定义。数组可以包含未使用的值,但在触发器注册时,必须在数组中存在值,以便浏览器将其归因于来源。
- `"priority"`:表示归因触发器优先级的字符串值。有关更多信息,请参见[报告优先级和限制](/zh-CN/docs/Web/API/Attribution_Reporting_API/Generating_reports#报告优先级和限制)。
- - `"deduplication_key"`:表示唯一键的字符串,用于防止归因重复——例如,如果用户多次将同一项添加到购物车。有关更多信息,请参见[防止报告重复](https://developers.google.com/privacy-sandbox/private-advertising/attribution-reporting/prevent-duplication)。
+ - `"deduplication_key"`:表示唯一键的字符串,用于防止归因重复——例如,如果用户多次将同一项添加到购物车。有关更多信息,请参见[防止报告重复](https://developers.google.cn/privacy-sandbox/private-advertising/attribution-reporting/prevent-duplication)。
- `"debug_key"`:表示调试键的数字。如果你希望生成[调试报告](/zh-CN/docs/Web/API/Attribution_Reporting_API/Generating_reports#调试报告),请设置此项。
请参见 {{httpheader("Attribution-Reporting-Register-Trigger")}} 以获取所有可用字段的详细描述。
diff --git a/files/zh-cn/web/api/beforeinstallpromptevent/prompt/index.md b/files/zh-cn/web/api/beforeinstallpromptevent/prompt/index.md
index 59ca73fe3cc1e1..b4a552a5c0eb0d 100644
--- a/files/zh-cn/web/api/beforeinstallpromptevent/prompt/index.md
+++ b/files/zh-cn/web/api/beforeinstallpromptevent/prompt/index.md
@@ -45,4 +45,4 @@ prompt()
## 参见
- [制作可安装的 PWA](/zh-CN/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable)
-- web.dev(2021)上的[如何为应用提供安装体验](https://web.dev/articles/customize-install)
+- web.developers.google.cn 上的[如何为应用提供安装体验](https://web.developers.google.cn/articles/customize-install)(2021)
diff --git a/files/zh-cn/web/api/clients/claim/index.md b/files/zh-cn/web/api/clients/claim/index.md
index 2340bbc9e12650..1112318372ecca 100644
--- a/files/zh-cn/web/api/clients/claim/index.md
+++ b/files/zh-cn/web/api/clients/claim/index.md
@@ -41,10 +41,8 @@ self.addEventListener("activate", (event) => {
{{Compat}}
-## See also
+## 参见
-- [Using Service Workers](/zh-CN/docs/Web/API/ServiceWorker_API/Using_Service_Workers)
-- [The service worker lifecycle](https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/lifecycle)
-- [Is ServiceWorker ready?](https://jakearchibald.github.io/isserviceworkerready/)
-- {{jsxref("Promise", "Promises")}}
-- {{domxref("ServiceWorkerGlobalScope.skipWaiting()", "self.skipWaiting()")}} - skip the service worker's waiting phase
+- [使用 Service Worker](/zh-CN/docs/Web/API/Service_Worker_API/Using_Service_Workers)
+- [service worker 的生命周期](https://web.developers.google.cn/articles/service-worker-lifecycle)
+- {{domxref("ServiceWorkerGlobalScope.skipWaiting()", "self.skipWaiting()")}}——跳过 service worker 的等待阶段
diff --git a/files/zh-cn/web/api/console/dir_static/index.md b/files/zh-cn/web/api/console/dir_static/index.md
index 62ca929c126050..b434e96e725e84 100644
--- a/files/zh-cn/web/api/console/dir_static/index.md
+++ b/files/zh-cn/web/api/console/dir_static/index.md
@@ -38,5 +38,6 @@ dir(object);
## 参见
-- [MSDN:使用 F12 工具控制台查看错误和状态](http://msdn.microsoft.com/library/gg589530)
-- [Chrome 控制台 API 参考](https://developers.google.com/chrome-developer-tools/docs/console-api#consoledirobject)
+- [Microsoft Edge 关于 `console.dir()` 的文档](https://learn.microsoft.com/zh-cn/microsoft-edge/devtools-guide-chromium/console/api#dir)
+- [Node.js 关于 `console.dir()` 的文档](https://nodejs.org/docs/latest/api/console.html#consoledirobj-options)
+- [Google Chrome 关于 `console.dir()` 的文档](https://developer.chrome.google.cn/docs/devtools/console/api/#dir)
diff --git a/files/zh-cn/web/api/console/error_static/index.md b/files/zh-cn/web/api/console/error_static/index.md
index aa052295fd4719..a44941955d22a7 100644
--- a/files/zh-cn/web/api/console/error_static/index.md
+++ b/files/zh-cn/web/api/console/error_static/index.md
@@ -41,6 +41,6 @@ error(msg, subst1, /* …, */ substN)
## 参见
-- [Opera Dragonfly documentation: Console](http://www.opera.com/dragonfly/documentation/console/)
-- [MSDN: Using the F12 Tools Console to View Errors and Status](http://msdn.microsoft.com/library/gg589530)
-- [Chrome Developer Tools: Using the Console](https://developers.google.com/chrome-developer-tools/docs/console#errors_and_warnings)
+- [Microsoft Edge 关于 `console.error()` 的文档](https://learn.microsoft.com/zh-cn/microsoft-edge/devtools-guide-chromium/console/api#error)
+- [Node.js 关于 `console.error()` 的文档](https://nodejs.org/docs/latest/api/console.html#consoleerrordata-args)
+- [Google Chrome 关于 `console.error()` 的文档](https://developer.chrome.google.cn/docs/devtools/console/api/#error)
diff --git a/files/zh-cn/web/api/console/index.md b/files/zh-cn/web/api/console/index.md
index be4889cc3f232f..b9658e9dfbd829 100644
--- a/files/zh-cn/web/api/console/index.md
+++ b/files/zh-cn/web/api/console/index.md
@@ -245,18 +245,11 @@ foo();
{{Compat}}
-## 注意
-
-- 在 Firefox 浏览器中,如果页面中自己定义了 `console` 对象,那么它会覆盖掉浏览器内置的 `console`对象,在其他浏览器可能也是。
-
-## 相关文档
-
-- [Tools](https://firefox-source-docs.mozilla.org/devtools-user/index.html)
-- [Web Console](https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html) - Firefox 浏览器控制台如何处理 console API 的调用
-- [Remote debugging](https://profiler.firefox.com/docs/) - 如何在调试移动设备时查看控制台输出。
-
-### 其他实现
-
-- [Google Chrome DevTools](https://developers.google.com/chrome-developer-tools/docs/console-api)
-- [Microsoft Edge DevTools](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide/console/console-api)
-- [Safari Web Inspector](https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Console/Console.html)
+## 参见
+
+- [Firefox 开发者工具](https://firefox-source-docs.mozilla.org/devtools-user/index.html)
+- [Web 控制台](https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html)——Firefox Web 控制台如何处理控制台 API 的调用
+- [about:debugging](https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html)——如何在调试移动设备时查看控制台输出
+- [Google Chrome 开发者工具](https://developer.chrome.google.cn/docs/devtools/console/api/)
+- [Microsoft Edge 开发者工具](https://learn.microsoft.com/zh-cn/archive/microsoft-edge/legacy/developer/)
+- [Safari Web Inspector](https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Console/Console.html)
diff --git a/files/zh-cn/web/api/console/timestamp_static/index.md b/files/zh-cn/web/api/console/timestamp_static/index.md
index f3eec06c9bea82..114b6e2446d16f 100644
--- a/files/zh-cn/web/api/console/timestamp_static/index.md
+++ b/files/zh-cn/web/api/console/timestamp_static/index.md
@@ -5,7 +5,7 @@ slug: Web/API/console/timeStamp_static
{{APIRef("Console API")}}{{Non-standard_header}}
-向浏览器的 [Performance](https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference) 或者 [Waterfall](/zh-CN/docs/Tools/Performance/Waterfall) 工具添加一个标记。这样可以让你将代码中的一个点和其他在时间轴上已记录的事件相关联,例如布局事件和绘制事件等。
+向浏览器的 [Performance](https://developer.chrome.google.cn/docs/devtools/performance/reference) 或者 [Waterfall](/zh-CN/docs/Tools/Performance/Waterfall) 工具添加一个标记。这样可以让你将代码中的一个点和其他在时间轴上已记录的事件相关联,例如布局事件和绘制事件等。
你可以选择用一个参数来作为时间戳标签,然后标记旁边就会显示这个标签。
diff --git a/files/zh-cn/web/api/console_api/index.md b/files/zh-cn/web/api/console_api/index.md
index 26418fd90b6e98..84128e6064623d 100644
--- a/files/zh-cn/web/api/console_api/index.md
+++ b/files/zh-cn/web/api/console_api/index.md
@@ -11,8 +11,8 @@ Console API 提供了允许开发人员执行调试任务的功能,例如在
Console API 最初是一个专有的 API,不同的浏览器以自己的实现方式来实现它。[Console API](https://console.spec.whatwg.org/) 规范统一了这个 API 的行为,并且所有现代浏览器最终都决定实现这种行为 — 尽管一些实现仍然有自己的附加专有功能。了解这些请查看:
-- [Google Chrome DevTools implementation](https://developers.google.com/chrome-developer-tools/docs/console-api)
-- [Safari DevTools implementation](https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Console/Console.html)
+- [Google Chrome 开发者工具实现](https://developer.chrome.google.cn/docs/devtools/console/api)
+- [Safari 开发者工具实现](https://webkit.org/web-inspector/console-object-api/)
用法非常简单 — {{domxref("console")}} 对象 — 可以通过{{domxref("window.console")}}获取到,在 workers 里面使用{{domxref("WorkerGlobalScope.console")}}获取,`console` — 包含许多方法,你可以调用它们来执行基本的调试任务,通常专注于将各种值记录到浏览器中 [WEB 控制台](/zh-CN/docs/Tools/Web_Console).
diff --git a/files/zh-cn/web/api/device_orientation_events/index.md b/files/zh-cn/web/api/device_orientation_events/index.md
index 7aab55995ac81c..ad3b550cce0635 100644
--- a/files/zh-cn/web/api/device_orientation_events/index.md
+++ b/files/zh-cn/web/api/device_orientation_events/index.md
@@ -54,4 +54,4 @@ l10n:
## 参见
-- [设备方向与运动](https://web.dev/articles/device-orientation),来自 web.dev
+- [设备方向与运动](https://web.developers.google.cn/articles/device-orientation),来自 web.developers.google.cn
diff --git a/files/zh-cn/web/api/document/adoptedstylesheets/index.md b/files/zh-cn/web/api/document/adoptedstylesheets/index.md
index d5b744f799e0ea..e9b54d139137ea 100644
--- a/files/zh-cn/web/api/document/adoptedstylesheets/index.md
+++ b/files/zh-cn/web/api/document/adoptedstylesheets/index.md
@@ -89,7 +89,7 @@ shadow.adoptedStyleSheets = [sheet];
## 参见
-- [可构建样式表](https://web.dev/articles/constructable-stylesheets)(web.dev)
+- [可构建样式表](https://web.developers.google.cn/articles/constructable-stylesheets)(web.developers.google.cn)
- [使用影子 DOM](/zh-CN/docs/Web/API/Web_components/Using_shadow_DOM)
- [`CSSStyleSheet()` 构造函数](/zh-CN/docs/Web/API/CSSStyleSheet/CSSStyleSheet)
- {{domxref("CSSStyleSheet.replaceSync()")}}
diff --git a/files/zh-cn/web/api/document/createelement/index.md b/files/zh-cn/web/api/document/createelement/index.md
index d3cd20c211c855..1498e4389dc512 100644
--- a/files/zh-cn/web/api/document/createelement/index.md
+++ b/files/zh-cn/web/api/document/createelement/index.md
@@ -19,7 +19,7 @@ createElement(tagName, options)
- _tagName_
- : 指定要创建元素类型的字符串,创建元素时的 {{domxref("Node.nodeName", "nodeName")}} 使用 `tagName` 的值为初始化,该方法不允许使用限定名称 (如:"html:a"),在 HTML 文档上调用 `createElement()` 方法创建元素之前会将`tagName` 转化成小写,在 Firefox、Opera 和 Chrome 内核中,`createElement(null)` 等同于 `createElement("null")`
- _options_{{optional_inline}}
- - : 一个可选的参数 `ElementCreationOptions` 是包含一个属性名为 `is` 的对象,该对象的值是用 `customElements.define()` 方法定义过的一个自定义元素的标签名。为了向前兼容较老版本的 [Custom Elements specification](https://www.w3.org/TR/custom-elements/), 有一些浏览器会允许你传一个值为自定义元素的标签名的字符串作为该参数的值。可以参考本页下方的 [Web component 示例](#web_component_示例) Google 的 [Extending native HTML elements](https://developers.google.com/web/fundamentals/primers/customelements/#extendhtml) 文档仔细了解如何使用该参数。
+ - : 一个可选的参数 `ElementCreationOptions` 是包含一个属性名为 `is` 的对象,该对象的值是用 `customElements.define()` 方法定义过的一个自定义元素的标签名。为了向前兼容较老版本的 [Custom Elements specification](https://www.w3.org/TR/custom-elements/), 有一些浏览器会允许你传一个值为自定义元素的标签名的字符串作为该参数的值。可以参考本页下方的 [Web component 示例](#web_component_示例)。
### 返回值
diff --git a/files/zh-cn/web/api/document/createelementns/index.md b/files/zh-cn/web/api/document/createelementns/index.md
index 752ba4134e062a..08bdd997d37239 100644
--- a/files/zh-cn/web/api/document/createelementns/index.md
+++ b/files/zh-cn/web/api/document/createelementns/index.md
@@ -23,7 +23,9 @@ document.createElementNS(namespaceURI, qualifiedName[, options]);
- `qualifiedName`
- : 指定要创建的元素的类型的字符串。创建的元素的[nodeName](/zh-CN/docs/DOM/element.nodeName)属性使用 qualifiedName 的值进行初始化。
- `options`可选的
- - : 一个可选的包含单个属性的 ElementCreationOptions 对象,其值是预先使用 customElements.define() 定义的自定义元素的标签名称。为了向后兼容[自定义元素规范](https://www.w3.org/TR/custom-elements/)的早期版本,一些浏览器允许你在此使用字符串替代对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的详情,请参阅[原生 HTML 元素](https://developers.google.com/web/fundamentals/primers/customelements/#extendhtml)。
+
+ - : 一个可选的包含单个属性的 ElementCreationOptions 对象,其值是预先使用 customElements.define() 定义的自定义元素的标签名称。为了向后兼容[自定义元素规范](https://www.w3.org/TR/custom-elements/)的早期版本,一些浏览器允许你在此使用字符串替代对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的详情,请参阅[扩展原生 HTML 元素](https://web.developers.google.cn/articles/web-components)。
+
新元素将被赋予一个属性,其值是自定义元素的标签名称。自定义元素是实验中的功能,目前仅在某些浏览器中可用。
### 返回值
diff --git a/files/zh-cn/web/api/element/requestpointerlock/index.md b/files/zh-cn/web/api/element/requestpointerlock/index.md
index 638db70a911289..5e2340d8446337 100644
--- a/files/zh-cn/web/api/element/requestpointerlock/index.md
+++ b/files/zh-cn/web/api/element/requestpointerlock/index.md
@@ -70,7 +70,7 @@ canvas.addEventListener("click", async () => {
- [指针锁定演示](https://mdn.github.io/dom-examples/pointer-lock/)([查看源代码](https://github.com/mdn/dom-examples/tree/main/pointer-lock))
- {{domxref("Pointer Lock API", "指针锁定 API", "", "nocode")}}
-- [禁用鼠标加速以提供更好的 FPS 游戏体验](https://web.dev/articles/disable-mouse-acceleration)
+- [禁用鼠标加速以提供更好的 FPS 游戏体验](https://web.developers.google.cn/articles/disable-mouse-acceleration)
## 规范
diff --git a/files/zh-cn/web/api/fenced_frame_api/index.md b/files/zh-cn/web/api/fenced_frame_api/index.md
index 6ab98da13590ad..47a787ff574b9f 100644
--- a/files/zh-cn/web/api/fenced_frame_api/index.md
+++ b/files/zh-cn/web/api/fenced_frame_api/index.md
@@ -30,18 +30,18 @@ Web 上[隐私](/zh-CN/docs/Web/Privacy)和[安全](/zh-CN/docs/Web/Security)问
`` 被其他 API 用于嵌入不同类型的跨站内容或收集数据,以隐私保护的方式满足不同的使用场景。这些功能以前大多依赖于第三方 cookie 或其他对隐私不利的机制。
-- [共享存储 API](https://developers.google.com/privacy-sandbox/private-advertising/shared-storage) 在安全的环境中提供对未分区跨站数据的访问,并在 `` 中计算或显示结果。例如:
+- [共享存储 API](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage) 在安全的环境中提供对未分区跨站数据的访问,并在 `` 中计算或显示结果。例如:
- 广告商可以衡量广告的覆盖范围,或者根据用户在其他网站上已经看到的广告来投放后续广告。
- 开发者可以进行 A/B 测试,根据用户被分配到的组或每个变体已被多少用户查看,来向用户展示不同的内容。
- 企业可以根据用户在其他网站上的行为来定制用户体验。例如,如果用户已经购买了会员资格,那么在其他网站上就不需要再向他们展示会员注册广告。
-- [受保护的受众 API](https://developers.google.com/privacy-sandbox/private-advertising/protected-audience) 允许开发者实现基于兴趣组的广告投放,包括再营销和自定义受众使用场景。它可以评估多个广告位的出价,并在 `` 中显示获胜的广告。
-- [隐私聚合 API](https://developers.google.com/privacy-sandbox/private-advertising/private-aggregation) 可以从 ``(来源于共享存储空间或受保护的受众 API)中收集数据,并创建聚合报告。
+- [受保护的受众 API](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience) 允许开发者实现基于兴趣组的广告投放,包括再营销和自定义受众使用场景。它可以评估多个广告位的出价,并在 `` 中显示获胜的广告。
+- [隐私聚合 API](https://developers.google.cn/privacy-sandbox/private-advertising/private-aggregation) 可以从 ``(来源于共享存储空间或受保护的受众 API)中收集数据,并创建聚合报告。
## `` 的工作原理
如上所述,你不能通过常规脚本直接控制嵌入在 {{htmlelement("fencedframe")}} 中的内容。
-要设置将在 `` 中显示的内容,使用 API(如[受保护的受众](https://developers.google.com/privacy-sandbox/private-advertising/protected-audience)或[共享存储](https://developers.google.com/privacy-sandbox/private-advertising/shared-storage))生成一个 {{domxref("FencedFrameConfig")}} 对象,然后通过 Javascript 将该对象设置为 `` 的 {{domxref("HTMLFencedFrameElement.config")}} 属性。
+要设置将在 `` 中显示的内容,使用 API(如[受保护的受众](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience)或[共享存储](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage))生成一个 {{domxref("FencedFrameConfig")}} 对象,然后通过 Javascript 将该对象设置为 `` 的 {{domxref("HTMLFencedFrameElement.config")}} 属性。
以下示例从受保护的受众 API 的广告拍卖中获取一个 `FencedFrameConfig`,然后使用它在 `` 中显示获胜的广告:
@@ -60,9 +60,9 @@ frame.config = frameConfig;
无论哪种方式,浏览器都会存储一个包含要嵌入内容的目标位置的 URL,该 URL 与不透明 URN 或 `FencedFrameConfig` 的内部 `url` 属性相对应。在嵌入上下文中运行的 JavaScript 无法读取 UR 值。
> [!NOTE]
-> 在 `