Envoyé par : spoon
Date : 08/06/2006 14:28
Bonjour ,
Un petit renseignement, débutant en xul j'essaie de faire un mini browser xul + xulrunner , partir de l'exemple de myBrowser de mozilla. J'usque là pas de pb ca fonctionne par contre lorsque j'essaie d'ouvrir des liens dans une nouvelle fenêtre à partir d'un target=... ca ne fonctionne pas est ce que quelqu'un aurait une idée ? Merci
Envoyé par : thefab
Date : 08/06/2006 14:40
Comment tu t'y prends pour l'instant ? Un petit bout de code à nous montrer ?
Envoyé par : spoon
Date : 08/06/2006 14:53
En fait le probleme c'est justement que je ne sais pas trop comment m'y prendre, je pensais que par defaut il reagissait comme un browser "classique" sur un target="__blank" par ex. pourle code rien d'extraordinaire :
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <!DOCTYPE window SYSTEM "chrome://mybrowser/locale/mybrowser.dtd"> <window id = "mybrowser" title = "mybrowser" width = "800" height = "600" xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="mybrowser.js"/><browser flex="1" id="browser" src="http://127.0.0.1/xul.html" type="content-primary" /> <statusbar> <statusbarpanel id="status" label="" crop="end" flex="1"/> <progressmeter id="progress" mode="determined" value="0%" style="display: none"/> <statusbarpanel id="security" label="" style="display: none"/> </statusbar> </window>
et dans mon fichier xul.html juste un lien test :
<a href="http://www.google.fr" target="_blank">test</a>
Envoyé par : laurentj
Date : 08/06/2006 15:28
je pensais que par defaut il reagissait comme un browser "classique" sur un target="__blank" par ex.
Et comment veux tu qu'il sache quelle fenêtre ouvrir ? quel fichier XUL ? ;-)
pour la solution, je ne sais pas. Je suppose qu'il faut detecter les click &cie.. À moins qu'il y ait un listener à mettre quelque part...
Envoyé par : spoon
Date : 08/06/2006 15:39
Yes, c'est ce que j'ai fait j'ai ajouté un listener pour voir si le clic ce faisait sur un lien et si un target etait renseigné. je n'ai pas de pb quand je fais ca dans ma page html, mais je ne sais pas comment faire pour par exemple en rajoutant un listener dans mon fichier xul du browser recupérer l'element cliqué dans la page html.
Merci.
Envoyé par : thefab
Date : 08/06/2006 15:40
Dans mybrowser.js la méthode onLocationChange(webProgress, request, location) permet de connaître l'URL de destination lorsqu'il y a un changement de page (location.spec). Mais elle n'est pas appelée pour un lien avec target ??? Désolé de ne pas pouvoir plus t'aider...
Envoyé par : thefab
Date : 08/06/2006 15:49
Tu peux ajouter le listener du click dans le onload
browser.addEventListener("click", MyBrowserOnClick, true);
Ensuite tu testes le noeud DOM avec event.target
function MyBrowserOnClick(e) { alert(e.target.nodeName); }
Envoyé par : spoon
Date : 08/06/2006 16:15
En fait c'est exactement ce que j'avais testé mais "e.target.nodeName" ne me recupere pas l'element cliqué dans la page html chargée par le browser.
Envoyé par : thefab
Date : 08/06/2006 16:28
Effectivement si le lien se trouve à l'intérieur d'autres éléments ça ne te retourne pas le bon élément. Même avec e.target, e.originalTarget ou e.currentTarget je n'y arrive pas non plus...
Envoyé par : spoon
Date : 08/06/2006 17:08
Bon en tout cas merci d'avoir cherché , je continue si je trouve je mettrais la reponse.
Envoyé par : skygreg
Date : 13/06/2006 11:15
Ca m'interresse aussi, qq pistes là :
http://www.xulplanet.com/forum/viewtopic.php?t=1642
Envoyé par : laurentj
Date : 13/06/2006 12:46
Oui comme j'ai répondu à spoon sur la mailing list, il faut indiquer l'url de la fenêtre du browser dans la pref browser.chromeURL, dans votre fichier de préférence js de votre appli.
Ensuite, en théorie, il doit normalement y avoir en paramètre à la nouvelle fenêtre ouverte, l'url à ouvrir dans le <browser>. Donc dans le onload de la fenêtre, il faut tester si il y a quelque chose dans window.arguments0, et si oui, il s'agit normalement de l'url. Vous la récupérez et la passer au browser.
Envoyé par : laurentj
Date : 13/06/2006 13:35
Bon, j'ai fait un récapitulatif + exemples sur le wiki : /wiki/RessourcesLibs/BrowserXulRunner
Envoyé par : skygreg
Date : 13/06/2006 14:09
Sauf que comme déjà dit sur la ML, window.arguments.length = 0 !! :-(
Envoyé par : laurentj
Date : 13/06/2006 15:33
Sauf que je viens de tester avec ce que j'ai indiqué dans le wiki : ça fonctionne !
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.