Открытие нового окна javascript через applecript БЕЗ существующего предыдущего окна - PullRequest
0 голосов
/ 26 января 2012

Попытка открыть 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, но было бы идеально, если бы существовало только всплывающее окно без необходимости делать это.

Есть идеи?

1 Ответ

0 голосов
/ 31 января 2012

Для меня (под управлением 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...