Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# document.getElementById n'accède pas à ma Sidebar

Envoyé par : magicyoda

Date : 29/03/2009 23:55

Bonjour,

tout d'abord, je suis très débutant, je viens de commencer aujourd'hui mais j'ai des connaissances javascript.

J'ai passé toute la journée sur ce problème de base, j'en peux plus :

J'ai une sidebar contenant un label et j'aimerai depuis mon code récupérer ou changer la valeur de ce label grace à document.getElementById , mais IMPOSSIBLE je n'y arrive pas. J'ai réduit mon code au maximum :

mon .JS :

var linkTargetFinder = function () {

return {
		init : function () {
			gBrowser.addEventListener("load", function () {
					linkTargetFinder.run();
			}, false);
		},
			
		run : function () {
			
			alert(document.getElementById('atest2').value);
			alert(content.document.location);
			
		}
	};
}();
window.addEventListener("load", linkTargetFinder.init, false);

ma SIDEBAR :

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css" ?>
<?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css" ?>
<!DOCTYPE linktargetfinder SYSTEM "chrome://linktargetfinder/locale/translations.dtd">
<page id="sbEmptySidebar" title="&sidebar.title;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >

<script type="application/x-javascript" src="chrome://linktargetfinder/content/linkTargetFinder.js"/>
 
  <vbox flex="1">
	<label id="atest2" value="lol" />
	<label id="atest" value="&sidebar.title;" />
  </vbox>

</page>

Lorsqu'en bas de fichier .js, j'ai :

window.addEventListener("load", linkTargetFinder.init, false);

il me renvoit toujours "null" car l'élément est introuvable.

MAIS j'ai trouvé que si je remplacais par :

window.addEventListener("load", linkTargetFinder.run, false);

(.run au lieu de .init)

j'obtenais au lancement du navigateur la BONNE VALEUR du label ! mais si je relance le .run qqes secondes plus tard à l'aide d'un bouton, il me renvoit à nouveau NULL.

Je n'y comprends plus rien !!

Comment pourrais-je procéder simplement pour toujours obtenir les bonnes valeurs de mes éléments de sidebar ..

merci d'avance

# Re: document.getElementById n'accède pas à ma Sidebar

Envoyé par : magicyoda

Date : 01/04/2009 18:04

la solution :

var sidebar = top.document.getElementById("sidebar").contentDocument; var iframe = sidebar.getElementById('relatediframe');

ou autre que iframe ;)

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.