AppleScript, чтобы открыть URL в сбоях Safari для сайтов на базе Flash

Я пытаюсь открыть URL в Safari. Он отлично работает на сайтах без встроенной Flash, но вылетает Safari для Flash сайтов.

Пример (это РАБОТАЕТ):

tell application "Safari" to open location "http://google.com"

Это ломается, когда Safari еще не запущен:

tell application "Safari" to open location "http://grooveshark.com"

Я заметил две вещи:

  • Safari падает только для сайтов со встроенной Flash
  • Сценарий, приведенный выше, аварийно завершает работу только в том случае, если создается новый экземпляр Safari (т. Е. Safari раньше не работал)

Из второго наблюдения я предполагаю, что это может быть какой-то вопрос разрешения. Может быть, экземпляр Safari, запущенный из AppleScript, имеет проблему с загрузкой плагинов?

2 ответа

Решение

Знаете ли вы, что "открытое местоположение" не является командой Safari AppleScript? Таким образом, вы не должны указывать сафари запускать эту команду. "Открытое местоположение" входит в стандартное дополнение к applecript и используется для открытия URL-адреса в приложении по умолчанию, которое обрабатывает URL-адрес. Плюс, если Safari является приложением по умолчанию для пользователя, и если он падает, если safari еще не запущен, то почему бы сначала не запустить safari, а затем вызвать вашу команду... Я не пробовал это... это просто предложение...

tell application "Safari" to launch
open location "http://grooveshark.com"

Кстати, если вы хотите убедиться, что Safari используется, то вы открываете URL, как это...

tell application "Safari"
    launch
    make new document
    tell document 1 to set URL to "http://grooveshark.com"
end tell

Я столкнулся с подобной проблемой некоторое время назад, работая над Xcode. Позже я понял, что это было вызвано активом во Flash. Если вы превратите свой appleScript в приложение, проблема должна быть решена.

В Xcode перейдите в Run -> Stop on Debugger()/DebugStr(), снимите флажок, если он включен, и снова соберите ваше приложение.

Другие вопросы по тегам