Envoyé par : froidure_nicolas
Date : 04/10/2006 11:18
Voilà, je crée actuellement une extension pour Mozilla. A un moment donné, je crée un nouvel onglet dans lequel j'insère du contenu. Malheureusement, j'ai un code qui ne fonctionne que si je fais un alert() avant. J'imagine que le fait de faire cela apporte le focus à l'I-Frame, mais comment ?
if(!composerTab||composerTab.parentNode===null) { composerTab = window.getBrowser().addTab('chrome://bbcomposer/content/bbeditor.html'); } getBrowser().selectedTab = composerTab; alert('Starting edition...'); // Si j'enlève ceci, le code ne fonctionne plus... if(getBrowser().contentDocument) { getBrowser().contentDocument.getElementsByTagName('body')[0].innerHTML = bbcode2html(textareaContent); }
Avez-vous une idée de ce qui permet à la fonction alert() d'activer l'accès au contenu du document ?
Envoyé par : chBok
Date : 04/10/2006 11:51
Oui, une grosse idée même... Le chargement de ton cadre est ASYNCHRONE, donc le message d'alerte laisse le temps à la page de se charger... Si tu l'enlèves, tous les éléments du DOM ne sont pas encore chargés et tu dois sûrement voir des erreurs dans ta console.
Il faut que tu places un composerTab.addEventListener('load' tafonction, false) sur ton nouvel onglet et terminer ton script juste après le addTab(). tafonction fera ensuite le traitement voulu.
Envoyé par : froidure_nicolas
Date : 04/10/2006 15:07
Ok, merci, ça fonctionne effectivement.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.