O'Reilly Japan -> amazon.co.jp banner
by
pmint
2015-04-16 [2015/04/16 21:40:11]
O'Reilly Japan の書籍紹介ページに amazon.co.jp バナーを勝手に追加
@@ -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 です。