15

Safariの最前面のウィンドウからURLを取得し、tr.imAPIを使用してURLを短縮できる[ウィジェット][1]を作成しましたとして甘い働きます。

これをもっと柔軟にしたいので、他のブラウザからURLを取得する方法を調査しています。Safariで動作するAppleScriptは次のとおりです。

tell application "Safari"
    return URL of front document as string
end tell

少し掘り下げた後、私は次のことがFirefoxで機能する可能性があると判断しました(ある人はそれが彼には機能しないと私に言ったが、おそらくいくつかの拡張機能との競合?):

tell application "Firefox"
    set myFirefox to properties of front window as list
    return item 3 of myFirefox
end tell

注:上記は、リストアイテムの位置に依存する、ベストプラクティスとは言えない例です。Firefoxのより良い解決策については、以下を参照してください。

私がやりたいのは、Mac上のすべての最新ブラウザ(Opera、Camino、Flockなど)に相当するもののリストをここに作成することです。

更新:このテーマに関する私の調査で、MacOSXHints.comで役立つスレッドに出くわしました。以下の私の答えのほとんどは、その議論に基づいています。

アップデート2:このページのAppleScriptを[ウィジェット][1]に組み込んだ。盛り上がっているようです。

4

11 に答える 11

3

Google Chrome for Mac では、URL を取得するための AppleScripting メソッドが追加されました。

これがChromium AppleScript SDKです

https://sites.google.com/a/chromium.org/dev/developers/design-documents/applescript

以下にリンクされているページの例:

   tell application "Google Chrome"
     get URL of active tab of window 1
   end tell

その他の例:

http://laclefyoshi.blogspot.com/2010/10/google-chrome-ver.html

于 2011-03-07T06:01:53.147 に答える
3

UI スクリプトを有効にして、以下のコードを実行します。URL がクリップボードに保存され、貼り付けることができます。

tell application "Firefox" to activate
tell application "System Events"
    keystroke "l" using command down
    keystroke "c" using command down
end tell
于 2009-10-21T04:38:47.970 に答える
2

現在、Firefox 3.03 にはバグがあり、以前に次のようなステートメントを使用した場合、«class curl» を含むすべてのウィンドウ プロパティが AppleScript から隠されます。

tell application "Firefox" to activate

また

tell application "Firefox"
 if (front window) exists then do_something()
end tell

回避策は、代わりに次のコードを使用することです。

tell application "System Events"
 tell process "Firefox"
  set frontmost to true
  set xsist to (front window) exists
  (* keep xsist value to test later on *)
 end tell
end tell

注 :ウィンドウのプロパティは、次回 Firefox を再起動するまで利用できません。

于 2008-11-07T10:12:48.457 に答える
2

Firefox (バージョン 2.0.0.14 および 3.0.1 でテスト済み):

tell application "Firefox"
    set myURL to «class curl» of window 1
    return myURL
end tell
于 2008-11-06T10:15:53.893 に答える
2

新しい ID で戻ってきた Piero です (Firefox を再インストールしようとしたときに Cookie を失いました!!!)。

私は Firefox 3.04 を試しましたが、appleScript のサポートと信頼性については何も変わりませんでした。それでも同じバグ...

私のテストと Web での検索の結果、ウィンドウの名前と、同じスクリプトで «class curl» などのウィンドウの他のプロパティにアクセスできないという結論に達しました。

ウィンドウの名前で作業していて、突然アクセスできなくなった場合 (文字列のようなランダムなバイナリを取得する場合)、このコードを再度呼び出す必要があります。

tell application "Firefox" to activate

Firefox でエラーを生成するステートメントを使用しても問題なく機能し、ウィンドウ名を再び使用できるようにしますが、Mac を再起動しても何も変わりません!

前述のように、一度それを行うと、次に Firefox を再起動するまで «class curl» にアクセスできなくなります ...

Mac 上の Firefox 用のスクリプトを書くことは、本当にミッション インポッシブルです。

AppleScript を Firefox でサポートしたい場合は、それを伝えて、このバグに投票してください!!!

https://bugzilla.mozilla.org/show_bug.cgi?id=464701

于 2008-11-13T16:19:14.170 に答える
1

Camino 1.6以降:

tell application "Camino"
    return URL of current tab of front browser window as text
end tell

以前の回答とは異なり、これはフォーカスされたタブのURLを取得します。

于 2009-04-29T00:53:02.450 に答える
1

上記のブライアンのおかげで、これは防弾バージョンです。

彼のコードはURLを貼り付けるように要求しますが、これはURLを「FrontDocumentURL」に設定します。これをスクリプトで変数として使用できます。

tell application "Firefox" to activate

tell application "System Events"
keystroke "l" using command down
keystroke "c" using command down
end tell

set FrontDocumentURL to the clipboard
于 2013-01-04T18:18:23.973 に答える
0

Camino (バージョン 1.6.4 でテスト済み):

tell application "Camino"
    set p to properties of front tab of front window
    return |currentURI| of p as string
end tell
于 2008-11-06T10:21:00.967 に答える
0

Flock (バージョン 2.0 でテスト済み):

tell application "Flock"
    set p to properties of front window as list
    return item 3 of p
end tell

これはリスト項目の位置に依存しますが、私が知る限り、これがこの値を取得する唯一の方法です。プロパティの名前addressは、Apple のドキュメントには記載されていませんが、AppleScript の予約語のようです。

于 2008-11-06T10:26:00.287 に答える
0

OmniWeb (バージョン 5.8 でテスト済み):

tell application "OmniWeb"
    set myInfo to GetWindowInfo
    return item 1 of myInfo
end tell
于 2008-11-06T10:46:46.033 に答える
0

Opera (バージョン 9.21 および 9.62 でテスト済み):

tell application "Opera"
    return URL of front document as string
end tell
于 2008-11-06T10:13:29.610 に答える