O'Reilly Japan -> amazon.co.jp banner

    @@ -1,22 +1,11 @@ /* * @title O'Reilly Japan -> amazon.co.jp banner - * @description O'Reilly Japan の書籍紹介ページに amazon.co.jp バナーを追加 + * @description O'Reilly Japan の書籍紹介ページに amazon.co.jp バナーを勝手に追加 * @include http://www.oreilly.co.jp/books/* * @license MIT License */ - -function elem(xpath) -{ - return document.evaluate( - xpath, - document, - null, - XPathResult.FIRST_ORDERED_NODE_TYPE, - null - ).singleNodeValue; -} - +// ISBN13 -> ISBN10 var isbnsrc = elem('//*[@id="center"]/ul/li[4]'); var isbn9 = isbnsrc.innerText.replace(/\D/g, '').match(/\d{3}(\d{9})/)[1]; @@ -26,8 +15,21 @@ } var isbn10 = isbn9 + '0123456789X'[11 - sum % 11]; +// create banner var a = document.createElement('a'); a.href = 'http://www.amazon.co.jp/dp/' + isbn10; a.innerHTML = '<img src="https://images-na.ssl-images-amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp8._V192265084_.gif" style="height:20px; vertical-align:top; margin:0 22px 0 0;" />'; -elem('//*[@id="center"]/div[2]').appendChild(a); +elem('//*[@id="center"]/div[2]').appendChild(a); + + +function elem(xpath) +{ + return document.evaluate( + xpath, + document, + null, + XPathResult.FIRST_ORDERED_NODE_TYPE, + null + ).singleNodeValue; +}
  • /*
     * @title O'Reilly Japan -> amazon.co.jp banner
     * @description O'Reilly Japan の書籍紹介ページに amazon.co.jp バナーを勝手に追加
     * @include http://www.oreilly.co.jp/books/*
     * @license MIT License
     */
    
    // ISBN13 -> ISBN10
    var isbnsrc = elem('//*[@id="center"]/ul/li[4]');
    var isbn9 = isbnsrc.innerText.replace(/\D/g, '').match(/\d{3}(\d{9})/)[1];
    
    var sum = 0;
    for (var i = 0; i <= 8; ++i){
        sum += isbn9[i] * [10, 9, 8, 7, 6, 5, 4, 3, 2][i]; 
    }
    var isbn10 = isbn9 + '0123456789X'[11 - sum % 11];
    
    // create banner
    var a = document.createElement('a');
    	a.href = 'http://www.amazon.co.jp/dp/' + isbn10;
    	a.innerHTML = '<img src="https://images-na.ssl-images-amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp8._V192265084_.gif" style="height:20px; vertical-align:top; margin:0 22px 0 0;" />';
    
    elem('//*[@id="center"]/div[2]').appendChild(a);
    
    
    function elem(xpath)
    {
    	return document.evaluate(
    		xpath,
    		document,
    		null,
    		XPathResult.FIRST_ORDERED_NODE_TYPE,
    		null
    	).singleNodeValue;
    }
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2015/04/16 21:39:25 - 2015-04-16
  2. 2014/11/21 03:45:50 - 2014-11-21
  3. 2014/11/21 03:44:37 - 2014-11-21
  4. 2014/11/21 03:43:17 - 2014-11-21
  5. 2012/08/10 23:30:36 - 2012-08-10
  6. 2012/08/10 23:12:24 - 2012-08-10
  7. 2012/08/10 23:07:43 - 2012-08-10
  8. 2012/08/10 22:49:03 - 2012-08-10
  9. 2012/08/10 22:43:12 - 2012-08-10
  10. 2012/08/10 22:42:41 - 2012-08-10
  11. 2012/08/10 22:38:25 - 2012-08-10
  12. 2012/08/10 22:17:50 - 2012-08-10
  13. 2012/08/10 22:03:10 - 2012-08-10