Manipuler une IFRAME dans un XUL

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...
LeDU
Arias
Messages : 7
Inscription : 06 oct. 2009, 01:15

Manipuler une IFRAME dans un XUL

Message par LeDU »

Bonjour

Je me demandais comment faire pour tester le chargement d'une Iframe inclus dans un XUL (via la balise html:iframe). Ou plus exactement savoir détecter les erreurs de connexion, de serveur ou les chargements incomplets de certaines pages.
Le but étant de recharger ces iFrames... avec les données postées au cas où (sans intervention de l'utilisateur).

Code : Tout sélectionner

var myListener = {

	Status: Components.interfaces.nsIWebProgressListener,

  QueryInterface: function(aIID)
  {
   if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
       aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
       aIID.equals(Components.interfaces.nsISupports))
     return this;
   throw Components.results.NS_NOINTERFACE;
  },
  onPageLoaded: function(aEvent) {
  },

  onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
	if (aFlag & this.Status.STATE_STOP)
	{
		// Recharger si erreur ou page incomplète
		if (aStatus != 0)
		{
		}
		else
		{
		}
	}
  },
};

Code : Tout sélectionner

	// Gestion du chargement de l'Iframe
	var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
	                   .getInterface(Components.interfaces.nsIWebNavigation)
	                   .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
	                   .rootTreeItem
	                   .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
	                   .getInterface(Components.interfaces.nsIDOMWindow);
	mainWindow.gBrowser.addProgressListener(myListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
	aDoc.addEventListener("DOMContentLoaded", myListener.onPageLoaded, true);
		// aDoc est la référence à l'Iframe
Seulement le Listener prend en compte tous les onglets, ce que je veux éviter.
Donc les questions :
- comment prendre en compte seulement l'onglet sur lequel se trouve le XUL, et plus exactement juste l'Iframe de ce XUL ?
- comment recharger "invisiblement" l'iframe (avec ou sans rePOST) ?


Merci encore :)
Répondre

Qui est en ligne ?

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