aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/api/index.html')
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/index.html40
1 files changed, 19 insertions, 21 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/api/index.html b/files/fr/mozilla/add-ons/webextensions/api/index.html
index 94ccefbb58..fde24d4ca1 100644
--- a/files/fr/mozilla/add-ons/webextensions/api/index.html
+++ b/files/fr/mozilla/add-ons/webextensions/api/index.html
@@ -8,39 +8,37 @@ translation_of: Mozilla/Add-ons/WebExtensions/API
---
<div>{{AddonSidebar}}</div>
-<div>
<p>Les APIs WebExtensions en JavaScript peuvent être utilisées au sein des <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">scripts d’arrière plan</a> de l’extension et dans tout autre document livré avec celle-ci. Ceci inclut les pop-ups relatives à une <a href="/fr/Add-ons/WebExtensions/user_interface/Browser_action">action navigateur</a> ou <a href="/fr/Add-ons/WebExtensions/user_interface/Page_actions">action de page</a>, <a href="/fr/Add-ons/WebExtensions/user_interface/barres_laterales">barres latérales</a>, <a href="/fr/Add-ons/WebExtensions/user_interface/Options_pages">pages d’options</a>, ou <a href="/fr/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">pages de nouvel onglet</a>. Certaines de ces APIs peuvent également être interrogées par des <a href="/fr/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">scripts de contenu</a> de l’extension (voir la <a href="/fr/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">liste dans le guide des scripts de contenu</a>).</p>
-<p>Pour utiliser les APIs plus puissantes, vous devez en <a href="https://developer.mozilla.org/fr/Add-ons/WebExtensions/manifest.json/permissions">demander la permission</a> dans le manifest.json de votre extension.</p>
+<p>Pour utiliser les APIs plus puissantes, vous devez en <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions">demander la permission</a> dans le manifest.json de votre extension.</p>
<p>Vous pouvez accéder aux APIs en utilisant l’espace de noms <code>browser</code> :</p>
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> afficher<span class="function token">Tabs</span><span class="punctuation token"> (</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span>
-<span class="punctuation token">}</span>
+<pre class="brush: js">function afficherTabs (tabs) {
+ console.log(tabs)
+}
+
+browser.tabs.query({currentWindow: true}, afficherTabs)</pre>
-browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> afficherTabs<span class="punctuation token">)</span></code></pre>
-</div>
-<div>
<p>De nombreuses APIs sont asynchrones et retournent une {{JSxRef("Promise")}}:</p>
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> afficher<span class="function token">Cookie </span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span>
-<span class="punctuation token">}</span>
+<pre class="brush: js">function afficherCookie (c) {
+ console.log(c)
+}
-<span class="keyword token">function</span> afficherErreur <span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span>
-<span class="punctuation token">}</span>
+function afficherErreur (e) {
+ console.error(e)
+}
+
+let setCookie = browser.cookies.set(
+ {url: "https://developer.mozilla.org/"}
+);
+setCookie.then(logCookie, afficherErreur)</pre>
-<span class="keyword token">let</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span>
-<span class="punctuation token"> {</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}
-</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> afficherErreur<span class="punctuation token">)</span></code></pre>
-</div>
<div>
-<p>Notez que ceci est différent du système d'extension de Google Chrome, qui utilise l’espace de noms <code>chrome</code> à la place de <code>browser</code>, et qui utilise des fonctions de rappel (callbacks) plutôt que des promesses pour les fonctions asynchrones. Afin de favoriser la portabilité, l’implémentation Firefox des WebExtensions prend en charge <code>chrome</code> et les fonctions de rappel ainsi que <code>browser</code> et les promesses. Mozilla a également écrit une prothèse d’émulation (polyfill) permettant au code qui utilise <code>browser</code> et les promesses de fonctionner sans modification dans Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p>
+<p>Notez que ceci est différent du système d'extension de Google Chrome, qui utilise l’espace de noms <code>chrome</code> à la place de <code>browser</code>, et qui utilise des fonctions de rappel (callbacks) plutôt que des promesses pour les fonctions asynchrones. Afin de favoriser la portabilité, l’implémentation Firefox des WebExtensions prend en charge <code>chrome</code> et les fonctions de rappel ainsi que <code>browser</code> et les promesses. Mozilla a également écrit une prothèse d’émulation (polyfill) permettant au code qui utilise <code>browser</code> et les promesses de fonctionner sans modification dans Chrome: <a href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p>
<p>Firefox implémente également ces API sous l’espace de noms Chrome à l’aide de rappels. Cela permet au code écrit pour Chrome de fonctionner en grande partie inchangé dans Firefox pour les API documentées ici.</p>
@@ -50,7 +48,7 @@ setCookie<span class="punctuation token">.</span><span class="function token">th
<p>Conseil : dans les listes d'API JavaScript, vous trouverez des exemples de codes courts qui illustrent la manière dont l'API est utilisée. Vous pouvez utiliser ces exemples, sans avoir besoin de créer une extension web, en utilisant la console de la <a href="https://extensionworkshop.com/documentation/develop/debugging/#developer-tools-toolbox">boîte à outils</a>. Par exemple, voici le premier exemple de code sur cette page fonctionnant dans la console de la boîte à outils dans Firefox Developpeur Edition :</p>
-<p><img alt="Illustration of a snippet of web extension code run from the console in the Toolbox" src="https://mdn.mozillademos.org/files/17186/JavaScript_exercised_in_console.jpg" style="height: 347px; width: 680px;"></p>
+<p><img alt="Illustration of a snippet of web extension code run from the console in the Toolbox" src="javaScript_exercised_in_console.jpg"></p>
<h2 id="Liste_des_API_JavaScript">Liste des API JavaScript</h2>