0 votes

Comment ajouter une propriété à l'objet window dans Chrome en utilisant Applescript ?

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)

1voto

teo Points 563

J'ai découvert une solution de contournement. Ce n'est peut-être pas la meilleure, mais la ligne suivante exécute le JavaScript que j'ai en tête tout en définissant les propriétés de window :

tell front window of application "Google Chrome"
    set URL of active tab to "javascript:" & window.myVar = "myValue"
end tell

En utilisant ceci, myVar renvoie de manière appropriée "myValue" . Bien.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X