AppleScript to open URL in Safari crashes for Flash-based websites

跟風遠走 提交于 2019-12-12 04:26:05

问题


I'm trying to open a URL in Safari. It works fine for websites without Flash embedded, but crashes Safari for Flash sites.

Example (this WORKS):

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

This CRASHES when Safari is not already running:

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

Two things I noticed:

  • Safari only crashes for websites with embedded Flash
  • The script above only crashes if a new instance of Safari is created (i.e. Safari was not running before)

From the second observation I assume that it could be a permission issue of some sort. Maybe the Safari instance launched from the AppleScript has a problem loading plugins?


回答1:


Did you know "open location" is not a Safari applescript command? As such you shouldn't tell safari to run that command. "Open location" is in the standard additions to applescript and it's used to open a url in the default application that handles the url. Plus, if Safari is the default application for a user, and if it crashes if safari isn't already running, then why not launch safari first, then call your command... I haven't tried this... it's just a suggestion...

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

By the way, if you want to make sure safari is used, then you open the url like this...

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



回答2:


I had come across a similar issue some time back while working on Xcode. I realized later that it was caused by an asset in Flash. If you turn your applescript into an application, the problem should be solved.

On Xcode, go to Run -> Stop on Debugger()/DebugStr() and uncheck the option if it is on and build your application again.



来源:https://stackoverflow.com/questions/2971924/applescript-to-open-url-in-safari-crashes-for-flash-based-websites

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!