Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过applescript打开新的javascript窗口,而不存在以前的窗口_Javascript_Macos_Applescript - Fatal编程技术网

通过applescript打开新的javascript窗口,而不存在以前的窗口

通过applescript打开新的javascript窗口,而不存在以前的窗口,javascript,macos,applescript,Javascript,Macos,Applescript,尝试在弹出式窗口中打开URL。下面的脚本可以正常工作,但当用户尚未打开任何窗口时,它就无法工作。我想我的问题是,我能在没有活动窗口的情况下执行Javascript吗 tell application "Safari" activate set theURL to "http://www.google.com" do JavaScript ("window.open('" & theURL & "','_blank','titlebar=0');") in document 1 e

尝试在弹出式窗口中打开URL。下面的脚本可以正常工作,但当用户尚未打开任何窗口时,它就无法工作。我想我的问题是,我能在没有活动窗口的情况下执行Javascript吗

tell application "Safari"
activate
set theURL to "http://www.google.com"
do JavaScript ("window.open('" & theURL & "','_blank','titlebar=0');") in document 1
end tell
我可以让它在Javascript之前打开一个新窗口,但是如果只存在一个弹出窗口而不必这样做,那将是非常理想的


有什么想法吗?

对于运行Mac OS X 10.6.8和Safari 5.1.2的我来说,解决方案的关键是重新打开命令。无论Safari是否正在运行,这将导致一个新的Safari窗口显示主页。您需要一个页面和一个文档来运行JavaScript

因为我们打开该窗口只是为了发出打开弹出窗口的JavaScript命令,所以我们可以通过在变量中记住它并稍后关闭它来消除它。当然,这是可选的,并且只有在脚本执行时没有打开Safari窗口时才有意义。通过对每个窗口进行计数,您可以轻松地对其进行测试


我发现,如果您打开了其他窗口,重新打开将无法按预期工作。使用“生成新文档”。
tell application "Safari"
    reopen -- unlike activate, this opens a window
    set theURL to "http://www.google.com"
    set currentTab to tab 1 of window 1
    do JavaScript ("window.open('" & theURL & "','_blank','titlebar=0');") in document 1
    close currentTab
end tell