Page 1 sur 1
[XUL] Mon "iframe" ne s'affiche qu'une seule fois
Publié : 03 juil. 2009, 17:17
par gussticier
Bonjour,
je développe une toolbar pour Firefox en Xul.
J'ai un 'toolbarbutton' qui contient un 'iframe' qui affiche la page d'accueil de google.
Si je clique une première fois sur le bouton 'monBouton', la page de google s'affiche bien.
Si je clique une seconde fois sur le bouton, l'iframe affiche une page blanche...
En gros, j'ai l'impression que l'iframe ne charge la page qu'une seule fois.
Voilà mon code:
<toolbarbutton id="monBouton" type="menu">
<menupopup>
<iframe id="monIframe" src="
http://www.google.fr" width="450" height="620"/>
</menupopup>
</toolbarbutton>
Idées:
1) J'ai essayé de remplacer 'iframe' par 'browser' mais ça ne change rien.
2) J'ai testé la fonction reload(); de l'iframe ou du browser mais sans résultat
Si quelqu'un a une idée, je suis preneur.
Merci d'avance
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 06 juil. 2009, 16:08
par gussticier
J'ai trouvé ce post qui me semble traiter du même problème...
http://forums.mozillazine.org/viewtopic ... &sk=t&sd=a
Mais je ne parviens pas à faire fonctionner la fonction loadURI :
monIframe.webNavigation.loadURI('
http://www.google.fr', frm.webNavigation.LOAD_FLAGS_NONE, null, null, null);

Toute aide est la bienvenue!
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 06 juil. 2009, 17:29
par Rémi
Bonjour,
Ton extension m'intéresse beaucoup.
Pourrais tu me faire un fichier xpi pour que je puisse me l'installer.
Je ne sais pas créer un xpi.
Merci d'avance
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 07 juil. 2009, 12:01
par gussticier
yo Rémi,
DSL mais je ne peux pas t'envoyer mon extension qui est un projet professionnel...
Par contre, c'est très simple de créer un fichier xpi!
(je te fais un petit topo)
Une fois que le développement de ton extension est terminé, il faut empaqueter l’extension en un fichier .xpi exécutable par Firefox.
Pour cela, il faut créer une archive contenant les répertoires content et skin, à la racine (Sous XP : clic droit, « ajouter à l’archive », ZIP et renommer en .jar)
Ensuite, il faut modifier le fichier chrome.manifest :
content monExtension jar:chrome/monExtension.jar!/content/
skin monExtension default jar:chrome/monExtension.jar!/skin/
Enfin, il faut créer une archive contenant le répertoire chrome, le fichier install.rdf et le chrome.manifest, à la racine (Sous XP : clic droit, « ajouter à l’archive », ZIP et renommer en .xpi).
Et voilà, l'extension peut être ouverte et installée par les versions compatibles de Firefox (concordant avec l’install.rdf).
Remarque : Pour le fichier install.rdf, les numéros de version min et max sont importants ainsi que l’adresse des mises à jour qui doit être en https://... (tu peux mettre une adresse au hasard c'est pas très important au début)
Voilà, j'espère que tu arriveras à ce que tu veux.
N'hésite pas à poser des questions...
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 16 juil. 2009, 17:30
par gussticier
up...
Toujours le même problème inquiétant...
Mon iframe ne s'affiche toujours qu'une seule fois!
Please...
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 20 juil. 2009, 09:52
par chBok
J'ai testé avec un <iframe< en constatant le soucis. Il existe une alternative en utilisant un élément <html:iframe>, mais ce n'est pas parfait à 100% non plus.
Publié : 20 juil. 2009, 12:00
par gussticier
Oui c'est déjà mieux...
Merci beaucoup.
j'ai fait comme cela:
Pour le namespace:
<overlay id="MonOverlay" xmlns="http://www.mozilla.org/keymaster/gateke ... s.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml">
pour l'iframe:
<toolbarbutton id="MonButton" type="menu">
<menupopup>
<html:iframe width="450" height="620" name="MonIframe" src="http://www.google.fr"/>
</menupopup>
</toolbarbutton>
Maintenant, le contenu de l'iframe s'affiche bien à chaque fois mais la taille de l'iframe se rétrécit après le premier affichage et ne conserve donc pas les propriétés
width="450" height="620"...
Je ne comprends pas pourquoi?
merci encore
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 20 juil. 2009, 14:22
par chBok
j'ai en effet constaté le rétrécissement du contenu, sans l'expliquer (d'où le pas parfait à 100%). Je pense que les menus surgissants (popup) ont une gestion particulière, et même s'ils permettent l'utilisation de balises XUL, ils ne permettent pas tout nativement.
Publié : 21 juil. 2009, 11:51
par gussticier
C'est embêtant quand même de ne pas pouvoir afficher une page dans une popup normalement...
Mais bon, pour l'instant, le rétrecissement est le mieux que j'ai pour l'instant!!!
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11
Publié : 03 août 2009, 11:30
par gussticier
Bonjour à tous!
J'ai toujours le même soucis de retrecissement de l'iframe dans mon menupopup et c'est quand même très génant...
Quelqu'un a t'il une idée pour corriger ce problème?
Merci
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Publié : 05 août 2009, 10:33
par gussticier
Bonjour,
J'ai finalement corrigé le problème de rétrecissement de l'iframe dans le menu popup.
La solution est de cacher le bouton, ensuite on fait une petite pause avec un settimeout, puis on réaffiche le bouton et le bug disparait...
C'est un peu brutus mais ça marche...
Pour le js:
Code : Tout sélectionner
<script type="text/javascript"><![CDATA[
function closePopup_1() {
document.getElementById('test').hidden = true;
setTimeout("closePopup_2()",5);
}
function closePopup_2() {
document.getElementById('test').hidden = false;
}
]]></script>
Pour le Xul :
Code : Tout sélectionner
<toolbarbutton id="test" type="menu">
<menupopup onpopuphidden="closePopup_1()">
<html:iframe src="http://www.google.fr"/>
</menupopup>
</toolbarbutton>
Voilà !
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12