Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Accés javascript de XUL à partir d'une iframe

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

# Re: Accés javascript de XUL à partir d'une iframe

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

# Re: Accés javascript de XUL à partir d'une iframe

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)

# Re: Accés javascript de XUL à partir d'une iframe

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 ?

# Re: Accés javascript de XUL à partir d'une iframe

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 :

  • est ce que ton document parent est dans le chrome ou distant ?
  • est ce que ton document de l'iframe est dans le chrome ou distant ?

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).

# Re: Accés javascript de XUL à partir d'une iframe

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.

# Re: Accés javascript de XUL à partir d'une iframe

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 ?

# Re: Accés javascript de XUL à partir d'une iframe

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)

# Re: Accés javascript de XUL à partir d'une iframe

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...

# Re: Accés javascript de XUL à partir d'une iframe

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.

# Re: Accés javascript de XUL à partir d'une iframe

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

# Re: Accés javascript de XUL à partir d'une iframe

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 !!!!

# Re: Accés javascript de XUL à partir d'une iframe

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.

# Re: Accés javascript de XUL à partir d'une iframe

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.