« 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 対応版も作ってみました。... 続きを読む



