Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# pb getElementById

Envoyé par : vinz

Date : 29/03/2011 02:06

Bonjour,

Pour mon extension, j'ai un .js rassemblant toutes mes fonctions. J'ai aussi 2 .xul correspondant à des window. L'un d'eux contient : <window id="list_window" .......>

Quand je fais dans mon .js : list_window = document.getElementById("list_window"), une erreur est levée, list_window est null

Comment accéder à ma window pour ensuite y insérer ou modifier des elements ?

Merci

# Re: pb getElementById

Envoyé par : mistervince

Date : 29/03/2011 09:27

salut

tu peux récupérer directement l'élément window du document sans utiliser d'id avec

var win = document.documentElement;

# Re: pb getElementById

Envoyé par : vinz

Date : 29/03/2011 09:44

Comment mon code peut alors deviner que je parle de ma window "list_window" et pas de mon autre fenêtre ?

Au niveau du lancement de ma fonction, elle est exécuté à partir d'une autre qui elle, ouvre la window (et fait tout un tas de choses)...

# Re: pb getElementById

Envoyé par : mistervince

Date : 29/03/2011 14:06

Je pense qu'il s'agit d'un problème de contexte javascript.

Si tu ouvres ta fenêtre avec window.open(), c'est normal que document.getElementById('list_window') ne retourne rien puisque 'document' est dans ce cas le document de départ (sans list_window mais avec un autre élément window) et pas celui que tu viens d'ouvrir (dans lequel list_window existe).

Par contre, je crois que window.open() retourne une référence vers la window ouverte. A partir de là, tu peux récupérer le document de la fenêtre qui vient de s'ouvrir et manipuler le DOM comme d'habitude.

Ca donne quelque chose comme ça :

var win = window.open(...);
//la nouvelle fenêtre s'ouvre
var list_window = win.document.documentElement;
//ou
var list_window2 = win.document.getElementByid('list_window');

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.