[XUL] Mon "iframe" ne s'affiche qu'une seule fois

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Répondre
gussticier

[XUL] Mon "iframe" ne s'affiche qu'une seule fois

Message 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
gussticier

Message 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);

:idea: 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
Rémi

Message 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
gussticier

Message 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
gussticier

Message 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
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

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

Message 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
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

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

Message 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
gussticier

Message 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
gussticier

Message 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
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités