MediaLab Love Chapter 2

Assistance of MediaLab Love about Javascript test and more...

AmazonからGoogle ブック検索へリンクを張るgreasemonkeyスクリプト

作りました。

リンク(link) 言語(language) 色(color)
http://userscripts.org/scripts/show/10480 日本語(Japanese) 普通(Standard)
http://userscripts.org/scripts/show/10481 英語(English) Google
http://userscripts.org/scripts/show/10478 日本語(Japanese) 普通(Standard)
http://userscripts.org/scripts/show/10479 英語(English) Google
// ==UserScript==
// @name          Amazon to Google Book Search Linky (Japanese Ver. GOOG Color)
// @namespace     http://d.hatena.ne.jp/Koumei_S/
// @description	  generates link from Amazon to Google Book Search
// @include       http://*.amazon.tld/*
// @version       1.0
// ==/UserScript==

libsearch();

function libsearch() {
	var asin10 = document.location.href.match(/\/(\d{9}[\d|X])(\/|$)/)[1];
	//var href = document.location.href;
	//var index = href.indexOf('product');
	//var asin10 = href.substring(index+8,index+18);
	if (asin10){
		// var isbn = mainmatch[1];
		var header = document.evaluate("//b[@class='sans']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
		if (location.host.match(/^astore/)){
			header = document.getElementsByTagName('h2')[0];
		}
		if (header) {
			var spl_link = document.createElement('a');
			spl_link.setAttribute('href', 'http://books.google.co.jp/books?q=isbn:' + asin10);
			spl_link.setAttribute('title', 'To Google Book Search');
			spl_link.setAttribute('target', '_blank');
			spl_link.innerHTML = '</br><span style=\"font-size:90%; background-color:#ffcccc;\">>> <span style=\"color:#1849B5\">G</span><span style=\"color:#C61800\">o</span><span style=\"color:#FFEF08\">o</span><span style=\"color:#1849B5\">g</span><span style=\"color:#39BA42\">l</span><span style=\"color:#C61800\">e</span> Book Search!</span>';
			header.parentNode.insertBefore(spl_link, header.nextSibling);
		}
	}
}

日本語と英語の違いはリンクを張るのが.comか.co.jpかの違いです。ほとんどの場合において結果そのものは同じかと思われますが、違う場合もあります。たとえば
http://books.google.com/books?q=isbn:427244025X
http://books.google.co.jp/books?q=isbn:427244025X
英語版では試し読みはできなくても、タイトルや著者、出版社とISBNが表示されますが、日本語版は検索結果すら出てきません。
この辺りを見ると、元のデータは全世界共通というわけでもないようです。