Probleme modification Dom sur onglet inactif.

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Quid
Arias
Messages : 5
Inscription : 16 mai 2008, 09:58

Probleme modification Dom sur onglet inactif.

Message par Quid »

Bonjour,

J'ai mis en place un listener au chargement de page :

Code : Tout sélectionner

window.addEventListener("load", function() 
{
    var appcontent = window.document.getElementById("appcontent");
    if (appcontent) 
    {
            appcontent.addEventListener("DOMContentLoaded", on_page_loaded, false);
}
Dans la fonction on_page_loaded j'ajoute un Div (qui contient un iframe) dans la page par :

Code : Tout sélectionner

thisElement = window._content.document.getElementById('detail');
thisElement.parentNode.replaceChild(nouveauDiv, thisElement);
Tout cela marche bien quand j'ouvre la page dans l'onglet FF actif.
Par contre sur un onglet inactif ca ne marche pas.

D'apres le debugage que j'ai fait c'est
thisElement = window._content.document.getElementById('detail');
qui ne fonctionne pas (sans message d'erreur).

Des idées ?

Merci.



Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Inspiré de ce que j'ai dans une extension :

Code : Tout sélectionner

window.addEventListener(
    "load",
    function(){
        gBrowser.addEventListener('DOMContentLoaded', on_page_loaded, false);
    },
    false
);
gBrowser est un fait un raccourci vers document.getElementById("content"), soit le tabbrowser général de Firefox, et est défini nativement dans Firefox.

Code : Tout sélectionner

function on_page_loaded(evt) {
  
  var browser;
  if (evt.currentTarget && evt.currentTarget.getBrowserForDocument) {
    var browser = evt.currentTarget.getBrowserForDocument(evt.target);
  }
  
  // tu peux maintenant accéder au document situé dans le bon élément browser
  // par browser.contentDocument, ou à son window par browser.contentWindow.
  
  // A toi de vérifier si ce docuement est celui qui t'intéresse (avec son url par exemple,
  // à chaque document chargé dans un onglet quelconque, cette function est exécutée.
}
Quid
Arias
Messages : 5
Inscription : 16 mai 2008, 09:58

Message par Quid »

Je nai pas réussi a faire fonctionner avec ton code mais ca m'a donné des idées...
Finalement avec e.originalTarget ca marche impecable ...

Merci pour ton aide.


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité