0

Applescript には奇妙な動作があります。私はこのスクリプトを手に入れました

property tmpUrl:"http://www.example.com"
on run argv
  if(count argv) > 0 then
    set tmpUrl to item 1 of argv
  end if
  if running of application "Safari" then
    tell application "Safari"
      activate
      make new document with properties{URL:tmpUrl}
    end tell
  else
    tell application "Safari"
      activate
      set URL of document 1 to tmpUrl
    end tell
  end if
end run

コードからわかるように、常に新しいウィンドウを開く必要があります。Safari が既に実行されている場合は、新しいウィンドウを作成する必要はありません。自動的に開いたウィンドウを使用し、場所を変更するだけです。

これを scripteditor で実行すると、すべてが期待どおりに機能します。しかし、bashから次のように呼び出すと:

osascript web_win_open.applescript "http://www.stackoverflow.com"

常に Safari が実行されているかのように動作します。そのため、Safari が実行されていない場合、2 つのウィンドウがポップアップ表示されます。1 つはホームページ、もう 1 つは cli の場所です。

何が違うのですか?これをどのように修正しますか?

4

1 に答える 1

1

Safari が既に実行されている場合は、新しいウィンドウを作成する必要はありません。

あなたのコードは逆のようです。「アプリケーション「Safari」を実行している場合は、ドキュメント1を使用する場合に新しいドキュメントを作成するように指示しています。コードを再配置するだけです。逆です。

于 2012-12-10T18:05:32.550 に答える