Для меня (под управлением 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