Dans la console JavaScript de Chrome, je peux taper ce qui suit :
window.myVar = "myValue";
Je peux alors accéder à myVar
à partir du contexte de la fenêtre, où il renvoie "myValue"
. Excellent.
Cependant, si je fais ce qui suit dans Applescript :
tell application "Google Chrome"
execute front window's active tab javascript "window.myVar = 'myValue';"
end tell
Cette instruction d'exécution semble s'exécuter lorsque le script est appelé. Aucune erreur n'est déclenchée et la fenêtre Chrome existe. Mais lorsque j'essaie de référencer myVar
à partir du contexte de la fenêtre, seulement undefined
n'est jamais renvoyée. À des fins de test, j'ai ajouté une déclaration d'alerte après cette déclaration - l'alerte se déclenchera, mais myVar
reste inchangée.
Maintenant, dans Safari, en utilisant do JavaScript
avec ce même code fonctionne comme si j'avais tapé le code directement dans la console - myVar
renvoie une valeur.
Pourquoi Chrome ne déclenche-t-il pas ces déclarations lorsqu'il est appelé par Applescript alors qu'il peut le faire manuellement ? (Chrome 51.0.2704.84, OS X 10.11.5)