Firefox addEventListener depuis iframe

[Résolu]
Signaler
Messages postés
3
Date d'inscription
mardi 19 septembre 2006
Statut
Membre
Dernière intervention
4 octobre 2006
-
Messages postés
3
Date d'inscription
mardi 19 septembre 2006
Statut
Membre
Dernière intervention
4 octobre 2006
-
Bjr,
Je rencontre le problème suivant :
j'ouvre une pseudo fenetre à partir d'un bouton  à l'intérieur d'une iframe, cette fenetre devant servir à sélectionner des lignes d'enregs pour les ajouter dans la fenetre referante.
Vous me suivez ?
Chaque ligne ajoutée doit comporter un button, button qui doit réagir à l'évènement click souris par un appel à une fonction - clair nan ? -. Sous ie je n'ai pas de problème (une fois n'est pas coutume), par contre avec firefox si l'évènement est bien déclancher  la fonction qui doit être excécutée ne l'est pas :(, le msg étant : nom_delaFunction is not defined.
La function qui positionne addEvenListener sur le button est bien entendu dans le m^me fichier script, ce qui est étrange c'est que la function n'est pas reconnue ???
je vous livre ci-dessous une partie du code :

ici la fonction qui est excécutée depuis la iframe, elle insère dans la fenetre appelante les lignes sélectionner par le user. C'est elle qui ajoute le button de suppression qui ne fonctionne pas sous firefox

function SDCJoindre(eltButton){
    var id_document =  eltButton.id.split('_')[1];
    var refOpener = window.parent ;
    var objContainerFile = refOpener.document.getElementById('SDC_divContainerLignesFichiers_' + id_document);
   
    var tabFiles = document.getElementById('table_fl_tbody');
    
     var arrChilds = tabFiles.getElementsByTagName('tr') ;
     for (var i=0;ien sachant que pour des lignes déja crées  en positionnant le même appel sur les buttons cela fonctionne
avec le code ci-dessus exécuter sur le onLoad

ini_sdc_documents = function(){
     var objForm = document.getElementById('SDC_listeDocumentsContainer');
      var arrButtons = objForm.getElementsByTagName('button');
      for (var i=0;i<arrButtons.length;i++){
             var nameF = arrButtons[i].name;
             arrButtons[i].onclick =  function(){eval(this.name)(this );return false}    
 }
}

est-il possible que le fait de placer le addEvent dans un iframe pose un prob ????
Avez vous des pistes ???

Merci si vous avez lu jusqu'ici

 

2 réponses

Messages postés
3
Date d'inscription
mardi 19 septembre 2006
Statut
Membre
Dernière intervention
4 octobre 2006

J'ai trouvé

il faut précisez à Firefox la référence à la window parente pour appeler la function (refOpener = window.parent ;)

donc cela donne une ligne pour les 2 navig,
eltButton.onclick= function(){refOpener .eval(this.name)(this );return false} ;

Merci
Messages postés
3
Date d'inscription
mardi 19 septembre 2006
Statut
Membre
Dernière intervention
4 octobre 2006

Ne pouvant pas rester bloqué je vais utiliser une rustine pour le moment.

Au préalable j'ai apporter une petite correction au code ci-dessous :
    eltButton.appendChild(eltImage);
    divLigne.appendChild(eltButton);
    objContainerFile.appendChild(divLigne);
devient
    eltButton.appendChild(eltImage);

    divButton.appendChild(eltButton);


    divLigne.appendChild(divButton.);

    objContainerFile.appendChild(divLigne);

car ce n'était pas le bon object qui était chargé, mais cela ne résoud pas mon problème :(

Pour conterner le prob je fais en attendant d'avoir plus de temps pour une autre soluce :
remplament de l'objevt button par un object a, oui vous lisez bien.
En fait pour l'interface ce n'est pas très dérangeant car les buttons ont des images en src.
Pour exécuter le js je met tout simplement un
eltButton.setAttribute('href','javascript:SDC_filesListbtSuppr(this);');
ellButton étant un a
C'est pas la solution mais cela fonctionne en espérant mieux.
Reste une autre solution non explorer peut être que je positionne l'attach event trop tôt, je devrais peut être le faire avant la fermeture de l'iframe ??