Téléchargement
illégal
Posez votre question Signaler

[Javascript] Transmission de variable globale [Résolu]

Chani - Dernière réponse le 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.
Lire la suite 

[Javascript] Transmission de variable globale »

4 réponses
Réponse
+5
moins plus
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 :

http://developer.mozilla.org/... (explication de la sécurité)

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

Si ça peut être utile à quelqu'un d'autre...
Ajouter un commentaire
Réponse
+0
moins plus
Pour contourner le problème, peut-être peux-tu utiliser des cookies ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Reivax962- 19 févr. 2007 à 17:36
Ah ben oui, désolé, j'avais lu très rapidement...

Mea culpa
Ajouter un commentaire
Ce document intitulé « [Javascript] Transmission de variable globale » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?