Je crée un addon firefox en utilisant xul. J'ai ajouté un iframe dynamique à l'aide script suivant:postMessage ne fonctionne pas avec iframe ajouté dynamiquement dans l'addon firefox en utilisant xul
//addon script:
let chromeUrl = 'https://myserver/downloadProduct.html';
Components.utils.import('resource://gre/modules/Services.jsm');//Services
let activeWindow = Services.wm.getMostRecentWindow('navigator:browser');
let mainDocument = activeWindow.document;
let iframeEl;
iframeEl = mainDocument.createElement('iframe');
iframeEl.id = "d";
iframeEl.setAttribute('src',chromeUrl);
iframeEl.setAttribute("tooltip", "aHTMLTooltip");
iframeEl.setAttribute("autocompleteenabled", true);
iframeEl.setAttribute("autocompletepopup", "PopupAutoComplete");
iframeEl.setAttribute("disablehistory",true);
iframeEl.setAttribute('type', 'content');
iframeEl.setAttribute('height', '32px');
window.document.documentElement.insertBefore(iframeEl, window.document.documentElement.window);
window.addEventListener("message", receiveMessage,false);
script ci-dessus ajoute avec succès une nouvelle iframe à la page. Maintenant, je veux recevoir des messages de iframe à mon addon. J'ai créé un événement postMessage dans le script iFrame, script comme suit:
//iFrame Script:
<script type="text/javascript">
$(document).ready(function() {
$("#Download").click(function() {
parent.postMessage({ Action: "DOWNLOADED", Result: null }, "*");
})
$("#NotNow").click(function() {
parent.postMessage({ Action: "NOT_NOW", Result: null }, "*");
})
$("#Never").click(function() {
parent.postMessage({ Action: "DO_NOT_SHOW", Result: null }, "*");
})
});
</script>
Mais je ne suis pas en mesure de recevoir un message dans mon addon firefox.
Quelqu'un peut-il aider?
Nous allons avoir besoin de savoir quelle 'window' est dans votre premier bloc de code (c'est-à-dire que vous avez fait' var window = ?? what ??; ') et' parent' dans votre deuxième bloc de code. – Makyen
Juste pour info: Il est assez improbable que vous obteniez que votre add-on soit approuvé pour la distribution sur AMO si vous utilisez un fichier HTML qui n'est pas fourni avec votre add-on (ie provenant d'une source web) de votre interface utilisateur. – Makyen
Veuillez fournir votre fichier HTML (ou au moins un fichier contenant vos boutons) afin que nous ayons le code nécessaire pour le tester (c'est-à-dire un [mcve]). – Makyen