Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutoCorrect files/zh-cn/mozilla/add-ons #6111

Merged
merged 3 commits into from
Jun 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions files/zh-cn/mozilla/add-ons/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ <h3 id="迁移现有扩展">迁移现有扩展</h3>

<h2 id="发布附加组件">发布附加组件</h2>

<p><a href="https://addons.mozilla.org">Addons.mozilla.org</a>,俗称 「AMO」,是 Mozilla 官方的官方站点,方便开发者发布扩展组件和用户查找。通过上传附加组件到  AMO, 你可以加入我们的用户和开发者社区,为你的附加组件找到订阅者。</p>
<p><a href="https://addons.mozilla.org">Addons.mozilla.org</a>,俗称「AMO」,是 Mozilla 官方的官方站点,方便开发者发布扩展组件和用户查找。通过上传附加组件到  AMO,你可以加入我们的用户和开发者社区,为你的附加组件找到订阅者。</p>

<p>你不一定需要在 AMO 上发布你的附加组件,但你的附加组件必须要经过 Mozilla 签名,否则用户不能安装它。</p>

Expand All @@ -69,7 +69,7 @@ <h2 id="其他类型的附加组件">其他类型的附加组件</h2>

<ul>
<li><a href="/zh-CN/docs/Mozilla/Creating_a_spell_check_dictionary_add-on">用户字典</a> 是可以进行各种语言的拼写检查的插件;</li>
<li><a href="https://support.mozilla.org/kb/use-firefox-interface-other-languages-language-pack">语言包</a> 让你有更多可用的语言用于Firefox的界面。</li>
<li><a href="https://support.mozilla.org/kb/use-firefox-interface-other-languages-language-pack">语言包</a> 让你有更多可用的语言用于 Firefox 的界面。</li>
</ul>

<h2 id="联系我们">联系我们</h2>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
---
<div>{{AddonSidebar}}</div>

<div>工具栏按钮是webextensions的一种主要UI组件,它在浏览器的工具栏中作为图标显示。当用户点击图标时,就会发生下面两种事件中的一样:</div>
<div>工具栏按钮是 webextensions 的一种主要 UI 组件,它在浏览器的工具栏中作为图标显示。当用户点击图标时,就会发生下面两种事件中的一样:</div>

<ul>
<li>如果按钮有弹出菜单,则显示该弹出。 弹出菜单是一个临时对话,它必须使用HTML,CSS,JavaScript语言表示。</li>
<li>如果没有弹出菜单, 则生成一个单击事件, 你可以在代码中监听该事件并执行其他响应。</li>
<li>如果按钮有弹出菜单,则显示该弹出。弹出菜单是一个临时对话,它必须使用 HTML,CSS,JavaScript 语言表示。</li>
<li>如果没有弹出菜单则生成一个单击事件你可以在代码中监听该事件并执行其他响应。</li>
</ul>

<p>在WebExtensions中这种按钮被称为浏览器行为按钮,它们可以像下面这样生成:</p>
<p>在 WebExtensions 中这种按钮被称为浏览器行为按钮,它们可以像下面这样生成:</p>

<ul>
<li>manifest.json 文件中的键 <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> 被用来定义按钮。</li>
Expand All @@ -21,9 +21,9 @@

<h2 id="一个简单的按钮">一个简单的按钮</h2>

<p>在这一节中我们将创建一个工具栏按钮的 WebExtension 。当用户单击按钮时,会打开一个<a href="https://developer.mozilla.org">https://developer.mozilla.org</a> 的新标签页.</p>
<p>在这一节中我们将创建一个工具栏按钮的 WebExtension。当用户单击按钮时,会打开一个<a href="https://developer.mozilla.org">https://developer.mozilla.org</a> 的新标签页</p>

<p>首先,新建名为 "button"的文件夹, 在该文件夹下创建名为"manifest.json" 的文件,内容如下:</p>
<p>首先,新建名为 "button"的文件夹在该文件夹下创建名为"manifest.json" 的文件,内容如下</p>

<pre class="brush: json">{

Expand All @@ -45,13 +45,13 @@ <h2 id="一个简单的按钮">一个简单的按钮</h2>

}</pre>

<p>上面内容显示有一个名为“ background .js ”后台脚本,以及在“ icons ”文件夹下的浏览器行为按钮图标。</p>
<p>上面内容显示有一个名为“background.js”后台脚本,以及在“icons”文件夹下的浏览器行为按钮图标。</p>

<div class="pull-aside">
<div class="moreinfo">These icons are from the <a href="https://www.iconfinder.com/iconsets/bitsies">bitsies!</a> iconset created by Recep Kütük.</div>
</div>

<p>接下来,在"buttons" 文件夹下创建 "icons" 文件夹,在该文件夹下存放下面的图标文件 :</p>
<p>接下来,在"buttons" 文件夹下创建 "icons" 文件夹,在该文件夹下存放下面的图标文件:</p>

<ul>
<li>"page-16.png" (<img alt="" src="https://mdn.mozillademos.org/files/13476/page-16.png" style="height: 16px; width: 16px;">)</li>
Expand All @@ -62,7 +62,7 @@ <h2 id="一个简单的按钮">一个简单的按钮</h2>

<p>我们有两个图标,大图标用于在高分辨率状态下显示。浏览器会自动选择合适的图标。</p>

<p>接着,在附加组件的根目录下创建 "background.js"文件 , 内容如下:</p>
<p>接着在附加组件的根目录下创建 "background.js"文件 , 内容如下:</p>

<pre class="brush: js">function openPage() {
browser.tabs.create({
Expand All @@ -89,7 +89,7 @@ <h2 id="一个简单的按钮">一个简单的按钮</h2>

<h2 id="添加一个弹出菜单">添加一个弹出菜单</h2>

<p>尝试在按钮上添加一个弹出菜单。 修改 "manifest.json"如下:</p>
<p>尝试在按钮上添加一个弹出菜单。修改 "manifest.json"如下</p>

<pre class="brush: json">{

Expand All @@ -109,12 +109,12 @@ <h2 id="添加一个弹出菜单">添加一个弹出菜单</h2>

}</pre>

<p>我们把原文件做了三处改变:</p>
<p>我们把原文件做了三处改变</p>

<ul>
<li>我们不需要引用“ background.js ”文件,因为会在弹出菜单的脚本中处理该行为 (你也可以使用“background.js“来运行一个弹出窗口,只是现在我们不需要这么做).</li>
<li>我们不需要引用“background.js”文件,因为会在弹出菜单的脚本中处理该行为 (你也可以使用“background.js“来运行一个弹出窗口,只是现在我们不需要这么做).</li>
<li>我们添加了<code>"browser_style": true</code>, 使弹出样式看上去更像是浏览器的一部分。</li>
<li>最后,我们添加 <code>"default_popup": "popup/choose_page.html"</code>, 告诉浏览器按钮被单击时弹出菜单,菜单的内容则在"popup/choose_page.html"页面中.</li>
<li>最后,我们添加 <code>"default_popup": "popup/choose_page.html"</code>, 告诉浏览器按钮被单击时弹出菜单,菜单的内容则在"popup/choose_page.html"页面中</li>
</ul>

<p>现在我们要创建弹出菜单。新建名为 "popup" 的文件夹,然后在文件夹内创建"choose_page.html" 文件,该文件内容如下:</p>
Expand All @@ -136,7 +136,7 @@ <h2 id="添加一个弹出菜单">添加一个弹出菜单</h2>

&lt;/html&gt;</pre>

<p>你会发现这是一个普通的HTML页面,它包含三个 {{htmlelement("div")}}元素,在每个元素中有一个Mozilla页面地址。另外还包括一个 CSS文件和一个JavaScript文件,我们会在后面添加它们。</p>
<p>你会发现这是一个普通的 HTML 页面,它包含三个 {{htmlelement("div")}}元素,在每个元素中有一个 Mozilla 页面地址。另外还包括一个 CSS 文件和一个 JavaScript 文件,我们会在后面添加它们。</p>

<p>在 "popup" 文件夹下,创建名为 "choose_page.css" 的文件,内容如下:</p>

Expand Down Expand Up @@ -172,7 +172,7 @@ <h2 id="添加一个弹出菜单">添加一个弹出菜单</h2>

});</pre>

<p>在我们的脚本中,我们会监听单击的弹出项。首先检查单击的对象是否在给出的页面选择项中,如果不在,则不做任何处理;如果在,则从单击的页面选择项中获取URL地址,然后打开一个对应页面的新标签页。注意:我们在弹出脚本中使用WebExtension接口,和在后台脚本中使用接口一样。</p>
<p>在我们的脚本中,我们会监听单击的弹出项。首先检查单击的对象是否在给出的页面选择项中,如果不在,则不做任何处理;如果在,则从单击的页面选择项中获取 URL 地址,然后打开一个对应页面的新标签页。注意:我们在弹出脚本中使用 WebExtension 接口,和在后台脚本中使用接口一样。</p>

<p>附加组件的结构最后看上去应该像下面这样:</p>

Expand All @@ -194,7 +194,7 @@ <h2 id="页面行为">页面行为</h2>

<p>页面行为<a href="/en-US/Add-ons/WebExtensions/User_interface_components#Page_actions">(Page actions)</a> 类似浏览器行为,只是页面行为仅针对特定页面,而浏览器行为则全局有效。</p>

<p>由于浏览器行为总是发生,而页面行为只在特定页面显示。所以页面行为按钮在URL地址栏中显示,而浏览器行为按钮则在浏览器工具栏中显示。</p>
<p>由于浏览器行为总是发生,而页面行为只在特定页面显示。所以页面行为按钮在 URL 地址栏中显示,而浏览器行为按钮则在浏览器工具栏中显示。</p>

<h2 id="了解更多">了解更多</h2>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ <h2 id="manifest.json">manifest.json</h2>
<ul>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#后台脚本">后台脚本</a>: 执行一个长时间运行的逻辑。</li>
<li><a>图标</a>: 用于扩展插件和任何它可能定义的按钮儿。</li>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#侧边栏,弹出窗口,选项页面">侧边栏, 弹出窗口, 选项页</a>: 为各式各样用户界面组件提供内容的HTML文件。</li>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#内容脚本">内容脚本</a>: 扩展中包含的JavaScript,你可以注入它们到网页中。</li>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#侧边栏,弹出窗口,选项页面">侧边栏弹出窗口选项页</a>: 为各式各样用户界面组件提供内容的 HTML 文件。</li>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#内容脚本">内容脚本</a>: 扩展中包含的 JavaScript,你可以注入它们到网页中。</li>
<li><a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#网络可访问资源">网络可访问资源</a>: 使打包好的内容可用于网页与内容脚本中。</li>
</ul>

Expand Down Expand Up @@ -76,7 +76,7 @@ <h4 id="DOM_API">DOM API</h4>
<p>后台脚本在一个被称为后台页面的特殊页面的上下文环境中运行。此环境为其提供了全局变量 <code><a href="/zh-CN/docs/Web/API/Window">window</a></code> ,也提供了所有的标准 DOM API。</p>

<div class="notecard warning">
<p><strong>警告:</strong> 在Firefox浏览器中,后台页面不支持使用 <a href="/zh-CN/docs/Web/API/Window/alert"><code>alert()</code></a>, <a href="/zh-CN/docs/Web/API/Window/alert"><code>confirm()</code></a>和 <a href="/zh-CN/docs/Web/API/Window/alert"><code>prompt()</code></a></p>
<p><strong>警告</strong> 在 Firefox 浏览器中,后台页面不支持使用 <a href="/zh-CN/docs/Web/API/Window/alert"><code>alert()</code></a>, <a href="/zh-CN/docs/Web/API/Window/alert"><code>confirm()</code></a>和 <a href="/zh-CN/docs/Web/API/Window/alert"><code>prompt()</code></a></p>

</div>

Expand Down Expand Up @@ -113,9 +113,9 @@ <h2 id="侧边栏,弹出窗口,选项页面">侧边栏,弹出窗口,选

<h2 id="扩展页面">扩展页面</h2>

<p>您也可以在扩展中包含HTML文档,这些文档不附加到某个预定义的用户界面组件。与您可能为侧边栏,弹出窗口或选项页面提供的文档不同,它们在manifest.json中没有条目。但是,他们也可以像在后台脚本那样拥有一样的权限去使用WebExtension API。</p>
<p>您也可以在扩展中包含 HTML 文档,这些文档不附加到某个预定义的用户界面组件。与您可能为侧边栏,弹出窗口或选项页面提供的文档不同,它们在 manifest.json 中没有条目。但是,他们也可以像在后台脚本那样拥有一样的权限去使用 WebExtension API。</p>

<p>你通常可以使用 {{WebExtAPIRef("windows.create()")}} 或 {{WebExtAPIRef("tabs.create()")}}加载一个页面.</p>
<p>你通常可以使用 {{WebExtAPIRef("windows.create()")}} 或 {{WebExtAPIRef("tabs.create()")}}加载一个页面</p>

<p>若想了解更多,请参考 <a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">扩展页面</a>。</p>

Expand All @@ -127,7 +127,7 @@ <h2 id="内容脚本">内容脚本</h2>

<p>内容脚本可以像普通脚本一样获取、操作页面的 DOM。</p>

<p>与普通的页面内脚本不同,Content scripts可以:</p>
<p>与普通的页面内脚本不同,Content scripts 可以:</p>

<ul>
<li>执行跨域访问</li>
Expand All @@ -137,13 +137,13 @@ <h2 id="内容脚本">内容脚本</h2>

<p>内容脚本无法直接访问普通网页中的脚本,但是可以通过 <code><a href="/zh-CN/docs/Web/API/Window/postMessage">window.postMessage()</a></code> API 来与之传递信息。</p>

<p>通常情况下,当我们讨论内容脚本时,我们通常指的是JavaScript,但是你也可以用同样的机制来注入 CSS 样式。</p>
<p>通常情况下,当我们讨论内容脚本时,我们通常指的是 JavaScript,但是你也可以用同样的机制来注入 CSS 样式。</p>

<p>若想了解更多,请参考<a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">内容脚本</a>。</p>

<h2 id="网络可访问资源">网络可访问资源</h2>

<p>网络可访问资源指的是像图片、HTML、CSS 和 JavaScript 一类在扩展中包含的资源文件,并且你可以在内容脚本和页面脚本中访问。这些网络可访问资源可以在页面脚本和内容脚本中通过使用特定的URI方案来引用。<br>
<p>网络可访问资源指的是像图片、HTML、CSS 和 JavaScript 一类在扩展中包含的资源文件,并且你可以在内容脚本和页面脚本中访问。这些网络可访问资源可以在页面脚本和内容脚本中通过使用特定的 URI 方案来引用。<br>
举个例子来说,如果一个内容脚本想要把一些图片插入网页,你可以在扩展中引入它们并且使他们成为网络可访问资源。接下来,内容脚本就可以创建并追加包含 <code>src</code> 属性的 <a href="/zh-CN/docs/Web/HTML/Element/img">img</a> 标签了。</p>

<p>若想了解更多,请参考 manifest.json 中相关条目的文档:<a href="/zh-CN/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a>。</p>
Original file line number Diff line number Diff line change
Expand Up @@ -15,39 +15,39 @@
---
<div>{{AddonSidebar()}}</div>

<p>创建一个新的alarm.</p>
<p>创建一个新的 alarm.</p>

<h2 id="使用语法">使用语法</h2>

<pre class="syntaxbox brush:js">browser.alarms.create(
name, // 可选的字符串(string)类型
alarmInfo // 可选的对象(object)类型
name, // 可选的字符串 (string) 类型
alarmInfo // 可选的对象 (object) 类型
)
</pre>

<h3 id="参数介绍">参数介绍</h3>

<dl>
<dt><code>name</code>{{optional_inline}}</dt>
<dd><code>字符串(string)类型。</code>alarm的名称。默认为空的字符串。</dd>
<dd>alarm的名称可以在{{WebExtAPIRef('alarms.get()')}}方法和{{WebExtAPIRef('alarms.clear()')}}方法中引用。同时它也可以通过{{WebExtAPIRef('alarms.onAlarm')}}监听方法传入的参数对象{{WebExtAPIRef('alarms.Alarm')}}的name属性访问到。</dd>
<dd>Alarm的名称是唯一的 (在单个附件范围内). 如果传入了已经在这个附件存在的名称, 原来的同名alarm会被移除并且没有警告。</dd>
<dd>字符串类型。alarm 的名称。默认为空的字符串。</dd>
<dd>alarm 的名称可以在{{WebExtAPIRef('alarms.get()')}}方法和{{WebExtAPIRef('alarms.clear()')}}方法中引用。同时它也可以通过{{WebExtAPIRef('alarms.onAlarm')}}监听方法传入的参数对象{{WebExtAPIRef('alarms.Alarm')}}的 name 属性访问到。</dd>
<dd>Alarm 的名称是唯一的 (在单个附件范围内). 如果传入了已经在这个附件存在的名称, 原来的同名 alarm 会被移除并且没有警告。</dd>
<dt><code>alarmInfo</code>{{optional_inline}}</dt>
<dd>
<p><code>对象(object)类型</code>. 你可以对过它来指定什么时间alarm会开始触发,其值可以是一个具体的时间值或者是一个延时(从alarm设置开始)。为了让alarm能复现,需要指定<code>periodInMinutes</code></p>
<p><code>对象(object)类型</code>. 你可以对过它来指定什么时间 alarm 会开始触发,其值可以是一个具体的时间值或者是一个延时(从 alarm 设置开始)。为了让 alarm 能复现,需要指定 <code>periodInMinutes</code></p>

<p>在Chrome浏览器上,除非附件以非打包(unpackaged)方式加载,alarm的创建每分钟不允许超过一次。如果附件尝试设置<code>delayInMinutes</code><code>为小于1的值,alarm只能在到达1分钟之后才会触发,并且会变成每分钟触发一次。</code></p>
<p>在 Chrome 浏览器上,除非附件以非打包 (unpackaged) 方式加载,alarm 的创建每分钟不允许超过一次。如果附件尝试设置 <code>delayInMinutes</code> 为小于1的值,alarm 只能在到达1分钟之后才会触发,并且会变成每分钟触发一次。</p>

<p><code>alarmInfo对象</code>可以设置以下属性:</p>
<p><code>alarmInfo</code> 对象可以设置以下属性:</p>
</dd>
<dd>
<dl class="reference-values">
<dt><code>when</code>{{optional_inline}}</dt>
<dd><code>double类型</code>. alarm第一次触发的时间,值为自1970-01-01 00:00:00 UTC过去的毫秒数。请使用<code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now">Date.now()</a>来获取</code>1970-01-01 00:00:00 UTC到<code>当前时间过去的毫秒数。如果你设置了when属性,请不要设置delayInMinutes属性。</code></dd>
<dd><code>double类型</code>。alarm 第一次触发的时间,值为自 1970-01-01 00:00:00 UTC 过去的毫秒数。请使用 <code><a href="/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/now">Date.now()</a></code> 来获取 <code>1970-01-01 00:00:00 UTC</code> 到当前时间过去的毫秒数。如果你设置了when属性,请不要设置 delayInMinutes 属性。</dd>
<dt><code>delayInMinutes</code>{{optional_inline}}</dt>
<dd><code>double类型</code>. alarm设置好到第一次触发之间的分钟数。如果你设置了<code>delayInMinutes属性,请不要设置when属性。</code></dd>
<dd><code>double类型</code>. alarm 设置好到第一次触发之间的分钟数。如果你设置了 <code>delayInMinutes</code> 属性,请不要设置 when 属性。</dd>
<dt><code>periodInMinutes</code>{{optional_inline}}</dt>
<dd><code>double类型</code>. 如果设置此属性,alarm会从第一次触发开始每隔<code>periodInMinutes分钟再次触发。如果你没有设置when及delayInMinutes属性,alarm会在alarm设置好之后periodInMinutes分钟第一次触发。如果periodInMinutes属性没有设置,则alarm只会触发一次。</code></dd>
<dd><code>double类型</code>. 如果设置此属性,alarm 会从第一次触发开始每隔 <code>periodInMinutes</code> 分钟再次触发。如果你没有设置when及delayInMinutes属性,alarm会在alarm设置好之后periodInMinutes分钟第一次触发。如果periodInMinutes属性没有设置,则alarm只会触发一次。</dd>
</dl>
</dd>
</dl>
Expand Down
Loading