« ecto for Windows 0.3.5.2 がリリースされました | トップページ | 5ヶ月経過 »
2004.05.17
右クリックで ISBN からオンライン書店の URL を生成するスクリプト
現在閲覧中の Web ページに載っている書籍のISBN文字列をマウス等で選択した後、 右クリックで各種オンライン書店の URL を生成することができるスクリプト(MenuExt)を作成してみました。
例えば、 Windowsサーバーセキュリティ徹底解説 (bk1) を見ているときに、ブラウザ画面上の 4-8443-1940-X を選択した後、右クリックで「ISBN を URL に変換」を選ぶと、 以下のような html を生成します。
- 生成されるコード
<div class="isbn"><p>[ISBN:4-8443-1940-X]</p><ul><li><a href="http://www.bk1.co.jp/cgi-bin/srch/srch_result_book.cgi?isbn=484431940X">bk1</a></li><li><a href="http://www.jbook.co.jp/product.asp?isbn=484431940X">JBOOK</a></li><li><a href="http://www.amazon.co.jp/exec/obidos/ASIN/484431940X/ref=nosim">Amazon</a></li><li><a href="http://books.rakuten.co.jp/b.jsp?i=484431940X">楽天ブックス</a></li><li><a href="http://pc.bookmall.co.jp/search/info.php?Isbn=4-8443-1940-X">ブックモールPC</a></li><li><a href="http://www.manah.net/book/product.jsp?sku=B484431940X">ManaHouse</a></li><li><a href="http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-ISBN=484431940X">紀伊國屋</a></li><li><a href="http://www.netdirect.co.jp/search/ISSSchDetail.asp?ISBN=484431940X">旭屋</a></li><li><a href="http://www.bk1.co.jp/cgi-bin/bk1srchres.cgi?aid=02sanseid01&srch=2&ti=&au=&pb=&pby=&pbrg=2&isbn=4-8443-1940-X&idx=3&s1=dd&dp=10">三省堂</a></li><li><a href="http://www.maruzen.co.jp/cgi-bin/mis?Cgifrom=m2-ezy-02&Dbs=MPW&VhIBW=4-8443-1940-X">丸善</a></li><li><a href="http://books.yahoo.co.jp/bin/search_key?pp=3&p=4-8443-1940-X">Yahoo! ブックス</a></li><li><a href="http://www.cbook24.com/bm_detail.asp?sku=484431940X">cbook24</a></li><li><a href="http://www.esbooks.co.jp/search?author_location=00&keyword=&book_name=&author=&content=&publisher=&isbn=4-8443-1940-X&keyword_switch=1&floor=&image_disp_flg=1&out_of_print=1&sort_order=8&invent_cond=&item_num=20&shelf_submit.x=21&shelf_submit.y=10">イーエスブックス</a></li><li><a href="https://market.bookservice.co.jp/emp-bin/eh_writer.exe/top/dairiten_isbn/receive_guest.html?isbn_cd=484431940X">クロネコヤマト ブックサービス</a></ul></div>
- 表示例
対応しているオンライン書店は、上記の「表示例」の通りです。
なお、今回公開するスクリプトにはアソシエイトIDやアフィリエイトIDの類は含んでいませんが、 含むように改造するのは簡単だと思います。
以下、ソースです。
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="Content-script-type" CONTENT="text/javascript"> <script type="text/javascript" language="JavaScript"> // ISBN → URL 変換スクリプト // Copyleft (c) 2004 by H.Tsujimura (tsupo@na.rim.or.jp) // Version 1.1 18 May 2004 「クロネコヤマト ブックサービス」にも対応 // Version 1.0 17 May 2004 最初の公開バージョン // Webページ閲覧中に ISBN 部分を選択し、右クリックした後、メニューから // 本スクリプトを起動することで、ISBN → 主要オンライン書店 URL へ変換 // します。 // なお、書籍によっては、取り扱い書店が限定されるものもあります。生成さ // れた URL に対応する Webページが存在しない可能性もありますので、注意 // してください。 // http://www.e-hon.ne.jp/ は(ISBNではない)独自のコード[おそらく、流通 // 各社共通のコード。トーハンの棚コード相当?]を使っているため、本スクリ // プトでは取り扱い対象外とします。 // JANコードやNIPS(紀伊國屋で採用)も対象外とします。 // Amazon の書籍以外の ASIN コードも対象外です。(ただし、ISBNコードと一致 // するASINコードは対象とします) obj = external.menuArguments; // 右クリック時の引数のオブジェクトの参照 page_url = obj.document.URL; // ページのURL title_txt = obj.document.title; // タイトル文字列 → 書籍の題名として使える可能性あり str = obj.document.selection.createRange().text; // 選択中の文字列 var linkString = ""; var amazon = page_url.match("amazon.co.jp"); if ( amazon && (str == "") ) { // 閲覧中の Webページが Amazon の場合は、ISBN文字列を選択していない状態で、 // 単に右クリックした場合でも、Webページ(の URL)から ISBN を取得可能 var ai = page_url.indexOf('ASIN'); var asin = page_url.substring(ai + 5, ai + 15); str = asin; } // 選択中の文字列が ISBN として有効かどうかのチェック // (今回対応する書籍は和書のみとする) len = str.length; iniChar = str.charAt(0); if ( ((len != 10) && (len != 13)) || (iniChar < '0') || (iniChar > '9') ) { alert( '有効な ISBN ではありません。' ); } else if ( iniChar != '4' ) { alert( '和書以外の ISBN には対応していません。あしからず。' ); } else { var isbn1 = ""; var isbn2 = ""; if ( amazon ) linkString = title_txt.substring(title_txt.indexOf(':') + 2, title_txt.length); if ( len == 10 ) { isbn2 = str; for ( i = 0; i < len; i++ ) { switch ( i ) { case 0: case 4: case 8: isbn1 += (str.charAt(i) + '-'); break; default: isbn1 += str.charAt(i); break; } } } else { isbn1 = str; for ( i = 0; i < len; i++ ) { c = str.charAt(i); if ( c != '-' ) isbn2 += c; } } isbnUrls = '<div class="isbn"><p>' + linkString + '[ISBN:' + isbn1 + ']</p><ul>'; isbnUrls += '<li><a href="http://www.bk1.co.jp/cgi-bin/srch/srch_result_book.cgi?isbn=' + isbn2 + '">bk1</a></li>'; // bk1 isbnUrls += '<li><a href="http://www.jbook.co.jp/product.asp?isbn=' + isbn2 + '">JBOOK</a></li>'; // JBOOK isbnUrls += '<li><a href="http://www.amazon.co.jp/exec/obidos/ASIN/' + isbn2 +'/ref=nosim">Amazon</a></li>'; // Amazon isbnUrls += '<li><a href="http://books.rakuten.co.jp/b.jsp?i=' + isbn2 + '">楽天ブックス</a></li>'; // 楽天ブックス isbnUrls += '<li><a href="http://pc.bookmall.co.jp/search/info.php?Isbn=' + isbn1 + '">ブックモールPC</a></li>'; // ブックモールPC isbnUrls += '<li><a href="http://www.manah.net/book/product.jsp?sku=B' + isbn2 + '">ManaHouse</a></li>'; // ManaHouse isbnUrls += '<li><a href="http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-ISBN=' + isbn2 + '">紀伊國屋</a></li>'; // 紀伊國屋 isbnUrls += '<li><a href="http://www.netdirect.co.jp/search/ISSSchDetail.asp?ISBN=' + isbn2 + '">旭屋</a></li>'; // 旭屋 isbnUrls += '<li><a href="http://www.bk1.co.jp/cgi-bin/bk1srchres.cgi?aid=02sanseid01&srch=2&ti=&au=&pb=&pby=&pbrg=2&isbn=' + isbn1 + '&idx=3&s1=dd&dp=10">三省堂</a></li>'; // 三省堂 isbnUrls += '<li><a href="http://www.maruzen.co.jp/cgi-bin/mis?Cgifrom=m2-ezy-02&Dbs=MPW&VhIBW=' + isbn1 + '">丸善</a></li>'; // 丸善 isbnUrls += '<li><a href="http://books.yahoo.co.jp/bin/search_key?pp=3&p=' + isbn1 + '">Yahoo! ブックス</a></li>'; // Yahoo! ブックス isbnUrls += '<li><a href="http://www.cbook24.com/bm_detail.asp?sku=' + isbn2 + '">cbook24</a></li>'; // cbook24.com isbnUrls += '<li><a href="http://www.esbooks.co.jp/search?author_location=00&keyword=&book_name=&author=&content=&publisher=&isbn=' + isbn1 + '&keyword_switch=1&floor=&image_disp_flg=1&out_of_print=1&sort_order=8&invent_cond=&item_num=20&shelf_submit.x=21&shelf_submit.y=10">イーエスブックス</a></li>'; // イーエスブックス isbnUrls += '<li><a href="https://market.bookservice.co.jp/emp-bin/eh_writer.exe/top/dairiten_isbn/receive_guest.html?isbn_cd=' + isbn2 + '">クロネコヤマト ブックサービス</a></li>'; // クロネコヤマト ブックサービス isbnUrls += '</ul></div>'; x = prompt('',isbnUrls); } </script>
例によって、設置の仕方は、他の MenuExt の設置方法を参考にしてください。
*** 5月18日 4時22分 追記 ***
新たに、「クロネコヤマトのブックサービス」は、以下のような形式の URL で目的の書籍にアクセスできることが判明。
https://market.bookservice.co.jp/emp-bin/eh_writer.exe/top/dairiten_isbn/receive_guest.html?isbn_cd=484431940X
ということで、「クロネコヤマトのブックサービス」をスクリプトに追加することが可能です。
追加したい人は追加してみてください。上記スクリプトを書き直し、「クロネコヤマトのブックサービス」に対応しました。(5月18日13時14分)
投稿者: tsupo 2004.05.17 午後 08:17
| 固定リンク
|
|
|
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト:
» 観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト from 此処録ANNEX:ココログTIPS
観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスク 続きを読む
» Amazonで見つけた書籍を他のオンライン書店のアフィリエイトURLに変換するブックマークレット from 観測気球
ISBNさえわかれば、いろんなオンライン書店のアフィリエイト用URLを生成できるという話。当blogでの過去の関連する話題のまとめも兼ねています。 続きを読む
» 各オンライン書店へのリンク生成 from Kayak's weblog
観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト よかった、調べる手間が省けた。 つーか良くイーエスのリンク生成調べたなぁ。... 続きを読む
» アマゾンアソシエイト 拡張型リンク from 観測気球
ライブ配信型のリンクを自動生成する「右クリック拡張(MenuExt)」を試しに作ってみました。 続きを読む
» bk1 リニューアルに伴う各種スクリプトの変更 from 観測気球
従来のスクリプト[ISBN→URL変換、キーワード検索結果ページURL生成]が生成する URL (リニューアル前のままの URL) でもちゃんと目的のページに飛べるみたいだけど、新しい URL 対応版も作ってみました。... 続きを読む