Amazon で気になった著者をハイライト表示する
環境
- Firefox 3.5.2
- Greasemonkey 0.8.20090123.1
問題
翻訳が気に入らない本を買ってしまわないようにしたい。
気になった本を買う理由づけとして、好きな著者だったら教えて欲しい。
解決方法
下記のスクリプトを登録しておくと、指定した著者名をハイライト表示する。
ハイライトの仕方を変更したい場合は、style をいじる。
// ==UserScript== // @name Amazon Author Checker // @namespace http://example.com/amazon_author_checker // @include http://www.amazon.co.jp/* // ==/UserScript== (function(){ var xpath = "//div[@class='buying']/a"; var markers = [ { authors: [ "好きな著者名1", "好きな著者名2", "好きな著者名3", ], style: { backgroundColor: "#C0FFC0", color: "#008000", fontSize: "18pt", paddingLeft: "5px", paddingRight: "5px", } }, { authors: [ "苦手な著者名1", "苦手な著者名2", "苦手な著者名3", ], style: { backgroundColor: "#D0D0D0", color: "#A0A0A0", fontSize: "9pt", paddingLeft: "5px", paddingRight: "5px", } }, ]; var nodes = $X(xpath); for(var n = 0, nl = nodes.length; n < nl; n++){ for(var m = 0, ml = markers.length; m < ml; m++){ for(var a = 0, al = markers[m].authors.length; a < al; a++){ var name = encodeURI(markers[m].authors[a]); if(0 <= nodes[n].href.indexOf(name)){ for(var k in markers[m].style){ nodes[n].style[k] = markers[m].style[k]; } } } } } function $X(query) { var results = []; var nodes = document.evaluate(query, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for(var i = 0, n = nodes.snapshotLength; i < n; i++){ results.push(nodes.snapshotItem(i)); } return results; } })();