Envoyé par : requiem
Date : 04/07/2006 17:02
Bonjour,
je sais qu'il est possible d'appeler de XUL les fonctions javascript d'une iframe. Mais est ce que l'inverse est possible ?
En clair, j'ai une iframe qui va appeler une fonction javascript contenu dans l'application XUL.
J'ai essayer :
onClick = window.parent.document.maFonctionXUL()
Mais ca ne fonctionne pas, une idée ?
Merci
Envoyé par : requiem
Date : 04/07/2006 17:05
Au passage, l'erreur que j'ai, est :
Erreur : uncaught exception: Permission refusée d'obtenir la propriété XULDocument.maFonctionXUL
Merci d'avance
Envoyé par : Zmx
Date : 05/07/2006 16:12
Alors je ne sais plus lequelle des 2 c'est mais: pref("capability.policy.default.Window.onSKDocLoad", "allAccess"); pref("capability.policy.default.ChromeWindow.onSKDocLoad", "allAccess");
Les pref etais a mettre dans le all.js mais je crois que tu peux aussi les mettre dans le user.js (tu remplace le nom de ma fonction par celui de la tienne)
Envoyé par : requiem
Date : 06/07/2006 09:19
Merci pour ta réponse, mais je developpe une application web qui n'est donc pas dans le chrome.
Deuxiemement,j'avais déjà lu ca sur le site, mais est-ce que cela veut dire que tous utilisateurs devront faire cette manipulation ?
Envoyé par : laurentj
Date : 06/07/2006 10:38
Ce n'est pas le principe de communiquer à proprement dit entre iframe et document parent qui est impossible. Il faut que tu t'interroge plutôt sur la localisation de tes documents :
Et selon ces critères, c'est faisable ou pas. En l'occurrence, vouloir accéder à un document chrome depuis un document distant est impossible (fort heureusement).
Envoyé par : requiem
Date : 06/07/2006 11:32
Merci pour ta réponse, je vais donc changer d'architecture pour rendre la chose possible.
Envoyé par : requiem
Date : 07/07/2006 11:10
Je résume: j'ai une iframe et je veux acceder aux script XUL quand un bouton de l'iframe est clické. je ne travail pas dans le chrome
Donc dans le script de l'iframe, j'ai :
function boutonClické(){ Doc = window.parent.document; objFrm = objDoc.getElementById('hbox')[0].nodeName; alert(objFrm); }
(je sais cette fonction n'a aucun interet, c'est juste pour acceder à un element XUL depuis l'iframe)
Et là, il me met: Erreur : uncaught exception: Permission refusée d'obtenir la propriété XULDocument.getElementById
Une idée ?
Envoyé par : thefab
Date : 07/07/2006 11:50
Comme l'as dis Laurent:
vouloir accéder à un document chrome depuis un document distant est impossible (fort heureusement)
Envoyé par : laurentj
Date : 07/07/2006 14:21
le script XUL, la page XUL en question, elle est où ? c'est quoi ? C'est une page xul du browser ? une page xul à toi, sur un serveur web ?
Bon sinon, c'est pas getElementById, mais getElementsByTagName que tu as voulu faire...
Envoyé par : thefab
Date : 07/07/2006 15:42
OK, j'ai mal compris. Si les 2 fichiers sont au même endroit (chrome ou hors chrome, mais pas 1 dans et l'autre dehors) c'est facile.
parent.xul
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript"> function test() { alert("Test dans parent.xul"); alert(document.getElementById("test-textbox").value); } </script> <button label="Test" oncommand="test();"/> <textbox id="test-textbox" value="OK"/> <iframe class="box-inset" src="child.xul" flex="1"/> </window>
child.xul
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript"> function test() { alert("Test dans child.xul"); window.parent.test(); } </script> <button label="Test" oncommand="test();"/> </window>
J'ai placé le code dans une fonction mais les éléments devraient être accessible de la même manière.
Envoyé par : hhf
Date : 09/07/2006 15:43
essaye ca pour parent.xul :
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml"> <script type="application/x-javascript"><![CDATA[ function test() { alert("Test dans parent.xul"); alert(document.getElementById("test-textbox").value); } ]]></script> <button label="Test" oncommand="test();"/> <textbox id="test-textbox" value="OK"/> <html:iframe class="box-inset" src="child.xul" flex="1"/> </window>
car il me semble que l'element iframe de xul ne se comporte pas comme l'iframe de html... tiens nous au courant de tes essais
Envoyé par : requiem
Date : 10/07/2006 11:28
Merci pour vos réponse mais ca ne va pas marcher dans mon cas.
En fait ce que je veux c'est un systeme d'annotation: _ d'un coté du XUL (pas dans le chrome) _ de l'autre une iframe contenant une page HTML (une page Web comme
google.fr)
Donc l'utilisateur peut selectionner du texte (dans l'iframe), appuyer sur un bouton (de l'interface XUL) et puis ca met le texte en rouge.
Donc ca, ca va , mais je veux que quand l'utilisateur clicke sur un texte en rouge (une annotation qu'il vient de faire), ca l'affiche dans l'interface XUL.
Donc: sur le texte selectionné je rajoute un attribut onClick et la je veux acceder au contenu de XUL.
Mais d'aprés ce que vous dites, on peut pas le faire
please !!!!
Envoyé par : thefab
Date : 10/07/2006 11:50
Sans être dans le chrome je ne vois pas comment faire ça ? Si tu as la possibilité d'en faire une extension tu peux jeter un coup d'oeil sur des utilitaires qui se combine au HTML, du genre MyStickies qui permet de placer des post-it sur une page et de les retrouver lorsque tu reviens.
Envoyé par : Zmx
Date : 10/07/2006 14:53
Si j'ai bien compris le probleme une solution possible serais:
Faire une extension pour pouvoir modifier le comportement du clique droit. Cette extension ajouterais un item au menu affiché quand on fait un clique droit si l'element HTML est celui que l'on connais.
Tu mets ton code xul, dans ce menuItem (en xul donc) et là, ça ne doit pas poser de probleme. (sur le onpopupshowing de firefox tu a deja des item qui se deselctionne si il y as du texte de séléctionné ou pas (copier, forward, etc...))
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.