Envoyé par : Raphael
Date : 17/06/2008 18:05
Bonjour, je dois dire que je sèche là, j'ai passé toutes le combinaisons possibles de syntaxe en parcourant le Forum et le Wiki...
Rappel des faits :
<iframe id="Iframe_0" src="chrome://ylifecore/content/modules/cardexplorer/cardexplorer.xul" type="content-primary" />
window.document.getElementById('Iframe_0').contentWindow.resetFilter(); document.getElementById('Iframe_0').contentWindow.resetFilter(); document.getElementById('Iframe_0').contentDocument.resetFilter(); etc...
resetFilter() est une fonction contenue dans cardexplorer_filter.js qui est chargée dans cardexplorer.js via :
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); loader.loadSubScript("chrome://ylifecore/content/modules/cardexplorer/libs/cardexplorer_filter.js");
Evidemment, cardexplorer.js est chargé depuis mon fichier XUL de mon iframe :
<script src="chrome://ylifecore/content/modules/cardexplorer/libs/cardexplorer.js" />
Et je n'arrive jamais à atteindre ma fonction, la console JS me retourne que ma fonction n'existe pas...
Est-ce que j'oublie quelque chose ?
Merci d'avance pour votre aide .
Envoyé par : thefab
Date : 18/06/2008 09:30
Si on iframe est de type 'content-primary' tu devrais pouvoir y accéder directement avec .content, genre:
content.resetFilter() content.document.resetFilter() content.window.resetFilter() ...
Envoyé par : Raphael
Date : 18/06/2008 12:12
Merci de la piste, j'ai essayé :
document.getElementById('Iframe_0').content.resetFilter(); document.getElementById('Iframe_0').content.document.resetFilter(); document.getElementById('Iframe_0').content.window.resetFilter();
Mais rien, n'y fait j'ai l'erreur :
Avertissement : reference to undefined property document.getElementById("Iframe_0").content Fichier Source : chrome://ylife/content/yLife.xul Ligne : 1 Erreur : document.getElementById("Iframe_0").content is undefined Fichier Source : chrome://ylife/content/yLife.xul Ligne : 1
Information supplémentaire, l'iframe et tout ce dont je parle est contenu dans un overlay qui se greffe à chrome://ylife/content/yLife.xul
Est-ce important ?
EDIT : En supprimant type="content-primary" et avec ''document.getElementById('Iframe_0').contentWindow.resetFilter(); '' et bien CA MARCHE !
Quelqu'un peut-il me dire à quoi sert ce type="content-primary" sur une iframe ? je l'ai toujours utilisé en prenant exemple sur le Wiki ou autres, mais sans trop savoir pourquoi ? Puis-je le supprimer en toute sérennité ? Quelles conséquences ?
Envoyé par : thefab
Date : 18/06/2008 13:49
Avec 'content-primary' tu peux faire:
content.contentWindow.resetFilter(); content.resetFilter(); ... ou autre chose ?
Sans le getElementById
Sans il faut faire:
document.getElementById('Iframe_0').contentWindow.resetFilter();
Je suppose
Envoyé par : Raphael
Date : 18/06/2008 14:02
Ok, mais si j'ai plusieurs iframes, ça doit poser problème en fait non ? Moi, je dois pouvoir atteindre une certaine iframe (l'active en fait).
Je suppose que j'utilise donc content-primary à mauvais escient ? Si j'ai bien compris il ne doit y avoir qu'une unique iframe primary afin d'y accéder facilement à travers la syntaxe simplifiée content.resetFilter() ?
Je peux donc supprimer mes content-primary de toutes mes iframes, le comportement ne changera pas, et je pourrais accéder à chaque fonction d'une iframe comme je le veux ?
Envoyé par : thefab
Date : 18/06/2008 14:23
Si j'ai bien compris il ne doit y avoir qu'une unique iframe primary afin d'y accéder facilement à travers la syntaxe simplifiée content.resetFilter() ?
Exactement
Envoyé par : Raphael
Date : 18/06/2008 17:48
Ok, impeccable, problème résolu alors, merci beaucoup.
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.