【发布时间】:2016-06-11 03:56:55
【问题描述】:
在 Chrome 的 JavaScript 控制台中,我可以输入以下内容:
window.myVar = "myValue";
然后我可以从窗口上下文访问myVar,它返回"myValue"。太棒了。
但是,如果我在 Applescript 中执行以下操作:
tell application "Google Chrome"
execute front window's active tab javascript "window.myVar = 'myValue';"
end tell
此执行语句似乎在调用脚本时运行。不会引发任何错误,并且 Chrome 窗口存在。但是当我尝试从窗口上下文中引用myVar 时,只会返回undefined。出于测试目的,我在声明之后添加了一条警报语句 - 警报将触发,但 myVar 仍未设置。
现在,在 Safari 中,使用带有相同代码的 do JavaScript 就像我直接在控制台中输入代码一样 - myVar 返回一个值。
当 Applescript 可以手动调用时,为什么 Chrome 不触发这些语句? (Chrome 51.0.2704.84,OS X 10.11.5)
【问题讨论】:
-
为什么 Chrome 本身甚至会知道 Apple Script? o_0 你认为谷歌的人们花了很多时间试图让它理解它吗?它不适用于任意程序...
-
Google Chrome 提供了一个字典,可与 AppleScript 一起用作 .SBF,可在脚本编辑器中查看。 Chrome 是可编写脚本的 - 它只是执行此 JavaScript 的方式与用户键入它时不同,我想了解原因。
标签: javascript google-chrome scripting applescript