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(), снимите флажок, если он включен, и снова соберите ваше приложение.