aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage')
-rw-r--r--files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.md161
1 files changed, 77 insertions, 84 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.md b/files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.md
index 77f451869b..ff709863be 100644
--- a/files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.md
+++ b/files/fr/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.md
@@ -13,87 +13,80 @@ tags:
- sendMessage
translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage
---
-<div>{{AddonSidebar()}}</div>
+{{AddonSidebar()}}
-<p>Envoie un simple message aux écouteurs d'événement dans votre extension ou une extension différente.</p>
+Envoie un simple message aux écouteurs d'événement dans votre extension ou une extension différente.
-<p>Si vous envoyez à votre extension, omettez l'argument <code>extensionId</code>. L'événement {{WebExtAPIRef('runtime.onMessage')}} sera déclenché dans chaque page de votre extension, à l'exception du cadre appelé <code>runtime.sendMessage</code>.</p>
+Si vous envoyez à votre extension, omettez l'argument `extensionId`. L'événement {{WebExtAPIRef('runtime.onMessage')}} sera déclenché dans chaque page de votre extension, à l'exception du cadre appelé `runtime.sendMessage`.
-<p>Si vous envoyez une extension différente, ajouter l'argument <code>extensionId</code> à l'ID de l'autre extension. {{WebExtAPIRef('runtime.onMessageExternal')}} sera déclenché dans l'autre extension.</p>
+Si vous envoyez une extension différente, ajouter l'argument `extensionId` à l'ID de l'autre extension. {{WebExtAPIRef('runtime.onMessageExternal')}} sera déclenché dans l'autre extension.
-<p>Les extensions ne peuvent pas envoyer de messages aux scripts de contenu en utilisant cette méthode. Pour envoyer des messages aux scripts de contenu, utilisez {{WebExtAPIRef('tabs.sendMessage')}}.</p>
+Les extensions ne peuvent pas envoyer de messages aux scripts de contenu en utilisant cette méthode. Pour envoyer des messages aux scripts de contenu, utilisez {{WebExtAPIRef('tabs.sendMessage')}}.
-<ul>
-</ul>
+C'est une fonction asynchrone qui renvoie une [`Promise`](/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise).
-<p>C'est une fonction asynchrone qui renvoie une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>.</p>
+> **Note :** Vous pouvez également utiliser une [approche basée sur la connexion pour échanger des messages](/fr/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Communication_avec_les_scripts_darrière-plan).
-<div class="note">
-<p><strong>Note :</strong> Vous pouvez également utiliser une <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Communication_avec_les_scripts_darrière-plan">approche basée sur la connexion pour échanger des messages</a>.</p>
-</div>
+## Syntaxe
-<h2 id="Syntaxe">Syntaxe</h2>
-
-<pre class="brush: js">var sending = browser.runtime.sendMessage(
+```js
+var sending = browser.runtime.sendMessage(
extensionId, // optional string
message, // any
options // optional object
)
-</pre>
-
-<h3 id="Paramètres">Paramètres</h3>
-
-<dl>
- <dt><code>extensionId</code>{{optional_inline}}</dt>
- <dd><p><code>string</code>. L'ID de l'extension à envoyer le message. Incluez ceci pour envoyer le message à une extension différente..Si le destinataire prévu a défini un ID explicitement en utilisant la clé d' <a href="/fr/Add-ons/WebExtensions/manifest.json/applications">applications</a> dans  manifest.json, <code>extensionId</code> doit avoir une valeur. Sinon, il devrait avoir l'ID qui a été généré pour le destinataire prévu.</p>
- <p>Si <code>extensionId</code> est omis, le message sera envoyé à votre propre extension.</p></dd>
- <dt><code>message</code></dt>
- <dd><code>any</code>. Un objet qui peut être structuré clone sérialisé.</dd>
- <dt><code>options</code>{{optional_inline}}</dt>
- <dd><p><code>object</code>.</p>
- <dl>
- <dt><code>includeTlsChannelId</code>{{optional_inline}}</dt>
- <dd><code>boolean</code>. Indique si l'ID de canal TLS sera transmis à {{WebExtAPIRef('runtime.onMessageExternal')}} pour les processus qui écoutent l'événement de connexion.</dd>
- <dt><code>toProxyScript{{optional_inline}}</code></dt>
- <dd><code>boolean</code>. Doit être True si le message est destiné à un fichier PAC chargé à l'aide de l'API {{WebExtAPIRef("proxy")}}.</dd>
- </dl>
- </dd>
-</dl>
-
-<p>En fonction des arguments qui lui sont donnés, cette API est parfois ambiguë. Les règles suivantes sont utilisées :</p>
-
-<ul>
- <li><strong>Si un argument est donné</strong>, c'est le message à envoyer, et le message sera envoyé en interne.</li>
- <li><strong>Si deux arguments sont donnés :</strong>
- <ul>
- <li>Les arguments sont interprétés comme (message, options) et le message est envoyé en interne si le second argument est l'un des suivants :
- <ol>
- <li>Un objet d'options valide (c'est-à-dire un objet qui ne contient que les propriétés des options supportés par le navigateur)</li>
- <li>null</li>
- <li>indéfini</li>
- </ol>
- </li>
- <li>Sinon, les arguments sont interprétés comme <code>(extensionId, message)</code>. Le message sera envoyé à l'extension identifiée par <code>extensionId</code>.</li>
- </ul>
- </li>
- <li><strong>Si trois arguments sont donnés</strong>, les arguments sont interprétés comme <code>(extensionId, message, options)</code>. Le message sera envoyé à l'extension identifiée par <code>extensionId</code>.</li>
-</ul>
-
-<p>Notez qu'avant Firefox 55, le règles étaient différentes dans le cas des 2 arguments. Sous les anciennes règles, si le premier argument était une chaîne, il était traité comme <code>extensionId</code>, avec le message comme deuxième argument. Cel signifiait que si vous appelez <code>sendMessage()</code> avec des arguments comme <code>("my-message", {})</code>, il enverrait un message vide à l'extension identifiée par "my-message". Sous les nouvelles règles, avec ces arguments, vous enverriez le message "my-message" en interne, avec un objet options vide.</p>
-
-<h3 id="Valeur_retournée">Valeur retournée</h3>
-
-<p>Une <code><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></code>. Si le destinataire a envoyé une réponse, celle-ci sera remplie avec la réponse en tant qu'objet JSON. Sinon, il sera rempli sans arguments. si une erreur survient lors de la connexion à l'extension, la promessage sera rejetée avec un message d'erreur.</p>
-
-<h2 id="Compatibilité_du_navitageur">Compatibilité du navitageur</h2>
-
-<p>{{Compat("webextensions.api.runtime.sendMessage")}}</p>
-
-<h2 id="Exemples">Exemples</h2>
-
-<p>Voici un script de contenu qui envoie un message au script d'arrière-plan lorsque l'utilisateur clique sur la fenêtre de contenu. La charge utile du message est <code>{greeting: "Greeting from the content script"}</code>, et l'expéditeur s'attend également à recevoir une réponse, qui est gérée dans la fonction <code>handleResponse</code> :</p>
-
-<pre class="brush: js">// content-script.js
+```
+
+### Paramètres
+
+- `extensionId`{{optional_inline}}
+
+ - : `string`. L'ID de l'extension à envoyer le message. Incluez ceci pour envoyer le message à une extension différente..Si le destinataire prévu a défini un ID explicitement en utilisant la clé d' [applications](/fr/Add-ons/WebExtensions/manifest.json/applications) dans  manifest.json, `extensionId` doit avoir une valeur. Sinon, il devrait avoir l'ID qui a été généré pour le destinataire prévu.
+
+ Si `extensionId` est omis, le message sera envoyé à votre propre extension.
+
+- `message`
+ - : `any`. Un objet qui peut être structuré clone sérialisé.
+- `options`{{optional_inline}}
+
+ - : `object`.
+
+ - `includeTlsChannelId`{{optional_inline}}
+ - : `boolean`. Indique si l'ID de canal TLS sera transmis à {{WebExtAPIRef('runtime.onMessageExternal')}} pour les processus qui écoutent l'événement de connexion.
+ - `toProxyScript{{optional_inline}}`
+ - : `boolean`. Doit être True si le message est destiné à un fichier PAC chargé à l'aide de l'API {{WebExtAPIRef("proxy")}}.
+
+En fonction des arguments qui lui sont donnés, cette API est parfois ambiguë. Les règles suivantes sont utilisées :
+
+- **Si un argument est donné**, c'est le message à envoyer, et le message sera envoyé en interne.
+- **Si deux arguments sont donnés :**
+
+ - Les arguments sont interprétés comme (message, options) et le message est envoyé en interne si le second argument est l'un des suivants :
+
+ 1. Un objet d'options valide (c'est-à-dire un objet qui ne contient que les propriétés des options supportés par le navigateur)
+ 2. null
+ 3. indéfini
+
+ - Sinon, les arguments sont interprétés comme `(extensionId, message)`. Le message sera envoyé à l'extension identifiée par `extensionId`.
+
+- **Si trois arguments sont donnés**, les arguments sont interprétés comme `(extensionId, message, options)`. Le message sera envoyé à l'extension identifiée par `extensionId`.
+
+Notez qu'avant Firefox 55, le règles étaient différentes dans le cas des 2 arguments. Sous les anciennes règles, si le premier argument était une chaîne, il était traité comme `extensionId`, avec le message comme deuxième argument. Cel signifiait que si vous appelez `sendMessage()` avec des arguments comme `("my-message", {})`, il enverrait un message vide à l'extension identifiée par "my-message". Sous les nouvelles règles, avec ces arguments, vous enverriez le message "my-message" en interne, avec un objet options vide.
+
+### Valeur retournée
+
+Une [`Promise`](/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise). Si le destinataire a envoyé une réponse, celle-ci sera remplie avec la réponse en tant qu'objet JSON. Sinon, il sera rempli sans arguments. si une erreur survient lors de la connexion à l'extension, la promessage sera rejetée avec un message d'erreur.
+
+## Compatibilité du navitageur
+
+{{Compat("webextensions.api.runtime.sendMessage")}}
+
+## Exemples
+
+Voici un script de contenu qui envoie un message au script d'arrière-plan lorsque l'utilisateur clique sur la fenêtre de contenu. La charge utile du message est `{greeting: "Greeting from the content script"}`, et l'expéditeur s'attend également à recevoir une réponse, qui est gérée dans la fonction `handleResponse` :
+
+```js
+// content-script.js
function handleResponse(message) {
console.log(`Message from the background script: ${message.response}`);
@@ -110,11 +103,13 @@ function notifyBackgroundPage(e) {
sending.then(handleResponse, handleError);
}
-window.addEventListener("click", notifyBackgroundPage);</pre>
+window.addEventListener("click", notifyBackgroundPage);
+```
-<p>Le script d'arrière-plan correspondant ressemble à ceci :</p>
+Le script d'arrière-plan correspondant ressemble à ceci :
-<pre class="brush: js">// background-script.js
+```js
+// background-script.js
function handleMessage(request, sender, sendResponse) {
console.log("Message from the content script: " +
@@ -122,19 +117,18 @@ function handleMessage(request, sender, sendResponse) {
sendResponse({response: "Response from background script"});
}
-browser.runtime.onMessage.addListener(handleMessage);</pre>
-
-<p>{{WebExtExamples}}</p>
-
-<div class="note"><p><strong>Note :</strong></p>
+browser.runtime.onMessage.addListener(handleMessage);
+```
-<p>Cette API est basée sur l'API Chromium <a href="https://developer.chrome.com/extensions/runtime#event-onConnect"><code>chrome.runtime</code></a>. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json"><code>runtime.json</code></a> dans le code de Chromium code.</p>
+{{WebExtExamples}}
-<p>Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.</p>
-</div>
+> **Note :**
+>
+> Cette API est basée sur l'API Chromium [`chrome.runtime`](https://developer.chrome.com/extensions/runtime#event-onConnect). Cette documentation est dérivée de [`runtime.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json) dans le code de Chromium code.
+>
+> Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.
-<div class="hidden">
-<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+<div class="hidden"><pre>// Copyright 2015 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
@@ -161,5 +155,4 @@ browser.runtime.onMessage.addListener(handleMessage);</pre>
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</pre>
-</div>
+</pre></div>