在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)
答案 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"
。好的。