如何使用Applescript将属性添加到Chrome中的窗口对象?

时间:2016-06-09 20:51:30

标签: javascript google-chrome scripting applescript

在Chrome的JavaScript控制台中,我可以输入以下内容:

window.myVar = "myValue";

然后我可以从窗口上下文中访问myVar,然后返回"myValue"。优异。

但是,如果我在Applescript中执行以下操作:

tell application "Google Chrome"
    execute front window's active tab javascript "window.myVar = 'myValue';"
end tell

这个execute语句似乎在调用脚本时运行。不会抛出任何错误,并且Chrome窗口存在。但是当我尝试从窗口上下文中引用myVar时,只返回undefined。出于测试目的,我在声明后添加了警告声明 - 警报将触发,但myVar仍然未设置。

现在,在Safari中,使用do JavaScript使用相同的代码就像我直接在控制台中输入代码一样 - myVar返回一个值。

当Applescript调用时,为什么Chrome不会在手动完成时触发这些语句? (Chrome 51.0.2704.84,OS X 10.11.5)

1 个答案:

答案 0 :(得分:0)

我发现了一种解决方法。可能不是最好的,但是下面一行执行我想到的JavaScript,同时还设置了window的属性:

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

使用此功能,myVar正确返回"myValue"。好的。