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

    @@ -6,16 +6,19 @@ */ -var elem = document.evaluate( - '//*[@id="center"]/ul/li[4]', - document, - null, - XPathResult.FIRST_ORDERED_NODE_TYPE, - null -).singleNodeValue; - +function elem(xpath) +{ + return document.evaluate( + xpath, + document, + null, + XPathResult.FIRST_ORDERED_NODE_TYPE, + null + ).singleNodeValue; +} -var isbn9 = elem.innerText.replace(/\D/g, '').match(/\d{3}(\d{9})/)[1]; +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){ @@ -23,12 +26,8 @@ } var isbn10 = isbn9 + '0123456789X'[11 - sum % 11]; -var elem2 = document.evaluate( - '//*[@id="center"]/div[2]', - document, - null, - XPathResult.FIRST_ORDERED_NODE_TYPE, - null -).singleNodeValue; +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; padding:0 22px 0 0;" />'; -elem2.innerHTML += '<a href="http://www.amazon.co.jp/dp/' + isbn10 + '"><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; padding:0 22px 0 0;" /></a>'; +elem('//*[@id="center"]/div[2]').appendChild(a);
  • /*
     * @title bookmarklet
     * @description my bookmarklet
     * @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;
    }
    
    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];
    
    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; padding:0 22px 0 0;" />';
    
    elem('//*[@id="center"]/div[2]').appendChild(a);
  • 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