通过applescript打开新的javascript窗口,而不存在以前的窗口
尝试在弹出式窗口中打开URL。下面的脚本可以正常工作,但当用户尚未打开任何窗口时,它就无法工作。我想我的问题是,我能在没有活动窗口的情况下执行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
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