カテゴリ別ログ
ログ検索
  
メール
  • (フォーム準備中)
リンク
サイト情報

 

ブラウザからアマザーを呼び出す(5) - Firefox その2
こんな感じ以前、ブラウザからアマザーを呼び出す(2) - Firefoxでは、JSActionsというアドオンでアマザーを起動するスクリプトをご紹介しましたが、それと同じサイトで紹介されているJSActionsButtonを使うと、Firefoxのツールバーにアマザーボタンを作れます。

JSActionsとJSActionsButtonをインストールしたら、スクリプトフォルダの中に「Buttons」というフォルダを作って、その中にJSActionsの文法で書いたスクリプトと、同名のアイコン画像を入れてください。Buttonフォルダごと用意したので、試しにどうぞ。(→ダウンロード

スクリプトはこんな感じです。
// URLか選択文字列をアマザーに渡します
jsa_amExec();
function jsa_amExec(){
    var am = _jsaCScript.convertCharCodeTo(
        C:¥¥tool¥¥am¥¥アマザー.exe,"shift_jis" );
    var cmdArg;
    if(_jsaCScript.context.isTextSelected){
        cmdArg = "/asin=" + window.getSelection();
    }
    else{
        cmdArg = "/url=" + window.location;
    }
    _jsaCScript.exec(am, cmdArg);
}
ピンクで書いてある部分は、自分のパソコンでのアマザーのフルパスに書き換えてください。動作としては、文字列を選択してボタンを押すとISBN/ASINコードとしてアマザーに渡され、何も選択していない状態だと開いているページのURLがアマザーに渡されます。

あと、おまけとして、クリップボード内の文字列をURLとして開くボタンを同梱しました。今すでにNew Tab and Goとかpastegoとかを使っているなら、その代わりに使えます。いらなかったら削除してください。

ブラウザからアマザーを呼び出す(4) - IE その2
以前、ブラウザからアマザーを呼び出す(1) - IE / Sleipnirでは、自前でスクリプトを書いてそれをIEの右クリックメニューに追加する方法をご紹介しましたが、IE Context Launcherというツールを使えば、自分でスクリプトを用意する必要もなく、もっと楽にできるようです。

配布元のページにある解説を参考にしてみてください。アマザー用の設定としては、通常時のパラメータに「/url=<TU>」、リンク上のパラメータに「/url=<AU>」、テキスト選択時のパラメータに「/asin=<ST>」といったところだと思います。

ブラウザからアマザーを呼び出す(3) - Opera
Operaからアマザーを呼べるようにするのは簡単です。スクリプトを書く必要すらありません。

C:¥Program Files¥Opera¥defaults¥ にある、standard_menu.ini を直接書き換えます。メモ帳などのエディタでstandard_menu.ini を開いたら、まず
[Link Popup Menu]
Item, 67389 = Open link
Item, 53018 = Open link in new page
Item, 53019 = Open link in background page
--------------------1
Item, 54020 = Open link in new window
Item, 67633 = Open link in background window
--------------------2
Item, 70463 = Add link to bookmarks
Item, 50216 = Copy link
Item, 50761 = Save link
Item, 67350 = Download url
こんなのを探してください。たぶん440行目付近にあると思います。最初の[Link Popup Menu]という項目は、リンクを右クリックした時のポップアップメニューであることを表しています。ここに、アマザーを呼ぶ命令を含めた行を挿入します。
[Link Popup Menu]
Item, 67389 = Open link
Item, 53018 = Open link in new page
Item, 53019 = Open link in background page
--------------------1
Item, 54020 = Open link in new window
Item, 67633 = Open link in background window
--------------------2
Item, 70463 = Add link to bookmarks
Item, 50216 = Copy link
Item, "アマザーに渡す" = Execute program,"C:¥tool¥am¥アマザー.exe","/url=%l"
Item, 50761 = Save link
Item, 67350 = Download url
黄色の行が、追加した行です(ピンクで書いてある部分は、自分のパソコンでのアマザーのフルパスに書き換えてください)。また、これは何行目に追加してもかまいません。並び順がそのままメニューに反映されるので、好きなところに入れてください。

この要領で、他の項目にも追加していきます。項目と、追加すべき行は以下の通りです。

470行目付近 ページ上の右クリックメニュー
[Document Popup Menu]
~ 略 ~
Item, "アマザーに渡す" = Execute program,"C:¥tool¥am¥アマザー.exe","/url=%u"

520行目付近 画像リンクの右クリックメニュー
[Image Link Popup Menu]
~ 略 ~
Item, "アマザーに渡す" = Execute program,"C:¥tool¥am¥アマザー.exe","/url=%l"

630行目付近 選択文字列の右クリックメニュー
[Hotclick Popup Menu]
~ 略 ~
Item, "アマザーに渡す" = Execute program,"C:¥tool¥am¥アマザー.exe","/asin=%t"

これらを任意の行に追加していってください。これですべて完了です。実際の動作は、こんな感じです。
  1. リンクを右クリックして実行すると、リンク先のURLがアマザーに渡される

  2. 文字列を選択した状態で右クリックして実行すると、選択文字列がISBN/ASINコードとしてアマザーに渡される

  3. 何もないところで右クリックして実行すると、見ているページのURLがアマザーに渡される

ひっかかりやすいところは、Operaの最新版である9.x系列だと、メニューに追加した日本語が文字化けする場合があるので、そのへんでハマったらOpera関連のサイトを調べたりしてみてください。

ブラウザからアマザーを呼び出す(2) - Firefox
今回は、Firefoxからアマザーを呼び出す方法です。

Firefoxにはさまざまな拡張があるので、「指定のアプリケーションに引数を渡して起動する」という動作のやり方はたぶんいろいろあると思いますが、今回はJSActionsという、右クリックメニューに自分で書いたスクリプトを追加できる拡張を使う方法を紹介します。

まずJSActionsを導入します。ファイルはこのページにあります。何種類かあるみたいですが、違いがよくわからなかったのでjsactions_2.2.0.2006032601.xpiっていうのを入れてみました。とりあえず新しそうなのを入れればいいんだろうと思います。それと、script_set.zipっていうのは必要なのでダウンロードしておいてください。

JSActionsをインストールしたら、script_set.zipを解凍して、出てきた「script_set」というフォルダを適当な場所に置き、Firefoxを再起動します。「スクリプトフォルダが指定されてません」みたいなエラーが出るので、メニューバー[ツール]→[拡張機能]からJavaScriptActionsを選択して設定ボタンを押し、Script FolderっていうところのBrowseボタンでさきほど設置したフォルダを、スクリプトフォルダとして指定します。

ここまでがJSActionsの導入です。Firefoxの画面上で右クリックして、Actionsという項目が新しくできているのを確認してください。

次に、アマザーを呼ぶスクリプトを準備します。JavaScriptで、こんな感じです。(→ダウンロード
// アマザーに渡す
jsa_amExec();
function jsa_amExec(){
    var am = _jsaCScript.convertCharCodeTo(
        "C:¥¥tool¥¥am¥¥アマザー.exe","shift_jis" );
    var cmdArg;
    if(_jsaCScript.context.onLink){
        cmdArg = "/url=" + _jsaCScript.context.link.href;
    }
    else if(_jsaCScript.context.isTextSelected){
        cmdArg = "/asin=" + window.getSelection();
    }
    else{
        cmdArg = "/url=" + window.location;
    }
    _jsaCScript.exec(am, cmdArg);
}

ピンクで書いてある部分は、自分のパソコンでのアマザーのフルパスに書き換えてください。前回IE用で紹介したVBScriptと違ってちょっと注意すべき点は、パス区切りの¥記号は二つ重ねるということです。書き換えたら、このスクリプトに好きな名前を付けて拡張子.jsで保存して、スクリプトフォルダの「global」っていうフォルダに入れます。

これですべて完了です。実際の動作は、こんな感じです。
  1. リンクを右クリックして実行すると、リンク先のURLがアマザーに渡される

  2. 文字列を選択して実行すると、選択文字列がISBN/ASINコードとしてアマザーに渡される

  3. それ以外(何もないところで右クリック)だと、見ているページのURLがアマザーに渡される
JSActionsは他にも便利なスクリプトがたくさん入っていて、JavaScriptを全然知らなくても、勘でちょこちょこ書き換えると何となくやりたいことができたりするので、面白いかもしれません。

ブラウザからアマザーを呼び出す(1) - IE / Sleipnir
まず、IEの右クリックメニューからアマザーを呼び出す方法を紹介します。

IEの右クリックメニューを拡張するには、スクリプトファイルを用意して、それをIEに登録するという作業が必要です。

スクリプトは、だいたいこんな感じです。(→ダウンロード
'//開いているページのURLをアマザーに渡す
<SCRIPT LANGUAGE="VBScript">
UrlTxt = external.menuArguments.top.document.URL
Set WSHShell = CreateObject("Wscript.Shell")
cmdArg = "/url=" & UrlTxt
am = """C:¥tool¥am¥アマザー.exe""" & cmdArg
WSHShell.Run am
</SCRIPT>

'//リンク先のURLをアマザーに渡す
<SCRIPT LANGUAGE="VBScript">
LnkTxt = external.menuArguments.event.srcElement.href
Set WSHShell = CreateObject("Wscript.Shell")
cmdArg = "/url=" & LnkTxt
am = """C:¥tool¥am¥アマザー.exe""" & cmdArg
WSHShell.Run am
</SCRIPT>

'//選択している文字列をISBN/ASINコードとしてアマザーに渡す
<SCRIPT LANGUAGE="VBScript">
SelTxt = external.menuArguments.document.selection.createRange().text
Set WSHShell = CreateObject("Wscript.Shell")
cmdArg = "/asin=" & Trim(SelTxt)
am = """C:¥tool¥am¥アマザー.exe""" & cmdArg
WSHShell.Run am
</SCRIPT>

ピンクで書いてある部分は、自分のパソコンでのアマザーのフルパスに書き換えてください。編集し終わったら、これらのスクリプトを、好きな名前に拡張子.htmlで保存して、IEに登録します。登録はレジストリの変更を伴う作業なので、専用のツールを使います。検索してみて、好きなものを使ってください。一応、動作確認に使ったのはIE MenuExtというツールです。定番みたいです。「リンク上」「テキスト選択時」など、メニューに出すタイミングも選べるので、適当に設定してください。

これで完了です。IE系のブラウザなら、この方法でブラウザからアマザーを呼べるようになります。

-------------------------

ついでに、IE系ブラウザの中でもユーザーの多いSleipnirでの方法を紹介します。

Sleipnirを使っているなら、右クリックメニューの拡張ではなく、こんなスクリプトを置く方法もあります。(→ダウンロード
'//Sleipnirで見ているページのURLをアマザーに渡す
Set WSHShell = CreateObject("Wscript.Shell")
Set slpObj = CreateObject("Sleipnir.API")
cmdArg = "/url=" & slpObj.URL
am = """C:¥tool¥am¥アマザー.exe""" & cmdArg
WSHShell.Run am

Set slpObj = Nothing
Set WSHShell = Nothing

'//選択している文字列をISBN/ASINコードとしてアマザーに渡す
Set WSHShell = CreateObject("Wscript.Shell")
Set slpObj = CreateObject("Sleipnir.API")
id = slpObj.GetDocumentID(slpObj.ActiveIndex)
Set document = slpObj.GetDocumentObject(id)
if document Is Nothing then
    Call slpObj.MessageBox("Document オブジェクトを作成できません")
else
    SelTxt = document.selection.createRange().text
    if Len(SelTxt) > 0 then
        cmdArg = "/asin=" & SelTxt
        am = """C:¥tool¥am¥アマザー.exe""" & cmdArg
        WSHShell.Run am
    else
        Call slpObj.MessageBox("文字列が選択されていません")
    end if
end if

Set document = Nothing
Set slpObj = Nothing
Set WSHShell = Nothing

これらのスクリプトを拡張子.vbsで保存して、メニューバー[スクリプト]→[スクリプトの整理]で開くフォルダの、好きなジャンルのところに入れておくと、メニューバー[スクリプト]→(ジャンル名)から呼び出せるようになります。

また、UserAction Extensionというプラグインを導入してスクリプトファイルをC:¥Program Files¥Fenrir & Co¥Sleipnir¥plugins¥scriptsに置けば、メニューバー[ツール]→[Sleipnirオプション]→ユーザインタフェースで、キーボードやマウスジェスチャから呼び出す設定が行えるようになります。ただ、Sleipnirの仕様の都合上なのか、UserAction Extensionから2番目のスクリプトを使うと、今のところエラーが出るみたいです。Sleipnirがバージョンアップして、これが動くようになれば、C:¥Program Files¥Fenrir & Co¥Sleipnir¥resources¥languages¥default¥japanese¥ SmartSearchPopup.xmlを編集してSmartSearchに登録することで、さらに便利に使えそうです。

ハイフン
ドロップウインドウ周りの細かい修正をしてて思い出したんですが、書籍についてるISBNコードって本当はハイフン区切りになってます。

例) 4-529-04230-8

出版社のサイトや、図書館ホームページなどでは、こういった表記になってると思います。今まで書き忘れてたんですが、こういうのをハイフン区切りのままドロップウインドウに貼り付けてEnterキーを押しても、ちゃんと認識します。ハイフンは自動で削除されます。本体ウインドウのISBN/ASINコード入力欄でも、ドロップ.exeでもそういうふうになってます。

もっと言うと、前後の空白も無視するので少しくらいなら雑にコピーしても大丈夫ですし、アルファベットは小文字で打ち込んでも大文字に変換されます。

モバイルサイト用リンクURL
Amazonモバイルというのがあって、携帯電話からもAmazonが利用できるそうです。

そのAmazonモバイル用のアソシエイトリンクURLは、普通のAmazon用とは違うルールになっているようで、その詳細はこちらに詳しく書かれています。

アマザーのテンプレートに記述するなら、こんな感じです。
<a href="http://www.amazon.co.jp/gp/aw/rd.html?uid=NULLGWDOCOMO&at={アソシエイトID}&a={ISBN/ASINコード}&dl=1&url=%2Fgp%2Faw%2Fd.html">{品名}</a>

Amazonモバイルっていうのを使ったことがないので良くわかりませんが、たぶんそういうことだと思います。携帯用のサイトをやってる方は参考にしてみてください。

△ PAGE TOP