尝试在弹出式窗口中打开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之前打开一个新窗口,但它是理想的,只需弹出窗口就可以存在而不必这样做。
有什么想法吗?
答案 0 :(得分:0)
对我来说(运行Mac OS X 10.6.8和Safari 5.1.2),解决方案的关键是reopen
命令。无论Safari是否正在运行,这将导致显示主页的新Safari窗口。你需要一个页面(一个“文档”)来运行你的JavaScript。
由于我们打开该窗口只是为了发出打开弹出窗口的JavaScript命令,我们可以通过在变量中记住它并稍后关闭它来摆脱它。当然,这是可选的,只有在脚本执行时没有打开的Safari窗口才有意义。您可以通过count every window
轻松测试。
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