[Javascript] Transmission de variable globale

Résolu/Fermé
Chani - 19 févr. 2007 à 12:08
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 19 févr. 2007 à 17:36
Bonjour,
Je cherche à faire communiquer une toolbar et une page web, toutes deux en javascript. Le principe est le suivant : lorsque la page web s'affiche, elle place l'URL d'une servlet dans une variable globale directement sous top (top.MA_VARIABLE). Elle envoie ensuite un message, catché par le javascript de ma toolbar, et celle-ci vient lire le contenu de top.MA_VARIABLE afin de récupérer l'URL. Ce mécanisme fonctionne bien sous Mozilla, mais pas sous Firefox : lorsque la toolbar vient lire le contenu de top.MA_VARIABLE, elle n'y trouve rien...
Quelqu'un connait-il ce problème ?
D'avance merci.

3 réponses

A force de fouiller le net, j'ai trouvé l'explication : pour des raisons de sécurité, l'accés est bloqué par XPCNativeWrapper. La solution est donc :

window.content.wrappedJSObject.MA_VARIABLE


Cette notion de sécurité existe lorsqu'il y a appel de code depuis une extension (c'est bien le cas de ma toolbar). Plus d'infos ici :

https://developer.mozilla.org/fr/docs/Acc%C3%A8s_s%C3%A9curis%C3%A9_au_contenu_DOM_depuis_le_chrome (explication de la sécurité)

http://xulfr.org/forums/forum/1/3877 (solution pour l'accès aux variables et méthodes !)

Si ça peut être utile à quelqu'un d'autre...
5
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 févr. 2007 à 17:21
Pour contourner le problème, peut-être peux-tu utiliser des cookies ?
0
Merci pour ta réponse, mais la solution que j'ai indiquée au dessus fonctionne très bien ! Il suffit s'accéder à la variable globale ainsi :
window.content.wrappedJSObject.MA_VARIABLE 

plutôt que
window.content.wrappedJSObject.MA_VARIABLE
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 févr. 2007 à 17:36
Ah ben oui, désolé, j'avais lu très rapidement...

Mea culpa
0