右クリックで ISBN からオンライン書店の URL を生成するスクリプト

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] 現在閲覧中の Web ページに載っている書籍のISBN文字列をマウス等で選択した後、右クリックで各種オンライン書店の URL を生成することができるスクリプトを作成してみました。
[キーワード] ISBN,URL変換

« 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&amp;srch=2&amp;ti=&amp;au=&amp;pb=&amp;pby=&amp;pbrg=2&amp;isbn=4-8443-1940-X&amp;idx=3&amp;s1=dd&amp;dp=10">三省堂</a></li><li><a href="http://www.maruzen.co.jp/cgi-bin/mis?Cgifrom=m2-ezy-02&amp;Dbs=MPW&amp;VhIBW=4-8443-1940-X">丸善</a></li><li><a href="http://books.yahoo.co.jp/bin/search_key?pp=3&amp;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&amp;keyword=&amp;book_name=&amp;author=&amp;content=&amp;publisher=&amp;isbn=4-8443-1940-X&amp;keyword_switch=1&amp;floor=&amp;image_disp_flg=1&amp;out_of_print=1&amp;sort_order=8&amp;invent_cond=&amp;item_num=20&amp;shelf_submit.x=21&amp;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&amp;srch=2&amp;ti=&amp;au=&amp;pb=&amp;pby=&amp;pbrg=2&amp;isbn=' + isbn1 + '&amp;idx=3&amp;s1=dd&amp;dp=10">三省堂</a></li>'; // 三省堂
    isbnUrls += '<li><a href="http://www.maruzen.co.jp/cgi-bin/mis?Cgifrom=m2-ezy-02&amp;Dbs=MPW&amp;VhIBW=' + isbn1 + '">丸善</a></li>'; // 丸善
    isbnUrls += '<li><a href="http://books.yahoo.co.jp/bin/search_key?pp=3&amp;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&amp;keyword=&amp;book_name=&amp;author=&amp;content=&amp;publisher=&amp;isbn=' + isbn1 + '&amp;keyword_switch=1&amp;floor=&amp;image_disp_flg=1&amp;out_of_print=1&amp;sort_order=8&amp;invent_cond=&amp;item_num=20&amp;shelf_submit.x=21&amp;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 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


ウェブログ・ココログ関連」カテゴリ内の最近の記事

プログラミング」カテゴリ内の最近の記事

右クリック(MenuExt)」カテゴリ内の最近の記事

品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/6737/609390

この記事へのトラックバック一覧です: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト:

» 観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト from 此処録ANNEX:ココログTIPS
観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスク 続きを読む

受信: 2004.08.05 午前 12:14

» Amazonで見つけた書籍を他のオンライン書店のアフィリエイトURLに変換するブックマークレット from 観測気球
ISBNさえわかれば、いろんなオンライン書店のアフィリエイト用URLを生成できるという話。当blogでの過去の関連する話題のまとめも兼ねています。 続きを読む

受信: 2004.08.09 午後 02:08

» 各オンライン書店へのリンク生成 from Kayak's weblog
観測気球: 右クリックで ISBN からオンライン書店の URL を生成するスクリプト よかった、調べる手間が省けた。 つーか良くイーエスのリンク生成調べたなぁ。... 続きを読む

受信: 2004.12.01 午前 01:33

» アマゾンアソシエイト 拡張型リンク from 観測気球
ライブ配信型のリンクを自動生成する「右クリック拡張(MenuExt)」を試しに作ってみました。 続きを読む

受信: 2005.03.14 午後 08:34

» bk1 リニューアルに伴う各種スクリプトの変更 from 観測気球
従来のスクリプト[ISBN→URL変換、キーワード検索結果ページURL生成]が生成する URL (リニューアル前のままの URL) でもちゃんと目的のページに飛べるみたいだけど、新しい URL 対応版も作ってみました。... 続きを読む

受信: 2005.04.11 午後 06:49

コメント

コメントを書く




※イタズラ防止のため、メールアドレスを入力しないと投稿できません。

次からのコメント入力の手間を省くために、名前やメールアドレスをcookieに記憶しますか?


URL を入力すると、その URL にリンクがはられます。
なお、メールアドレスは公開されません。ご安心ください。


ワード

ニッセン

fujisan.co.jp

楽天市場