書名で検索の続きとAmazonのURLがまた変わった?件
調査結果
- 書名関連
- XML関連
- 親ノードが存在しない場合、子ノードが存在するか判断してはだめらしい。
必ず存在するノードの直下のノードで判断する
- 親ノードが存在しない場合、子ノードが存在するか判断してはだめらしい。
- AmazonのURL関連
- またまたURLが異なるケースが見つかった。
現状のURLから判断するやり方はあきらめmyrmecoleonさんのやられているように、ページ内でASINまたはISBNの後に続くISBNコードらしきものからハイフンを取り除いたものを使用するパターンで行くことにした
- またまたURLが異なるケースが見つかった。
Bookmarklet
Amazon用(実際には1行です)
javascript:(function(){var is,a=document.body.innerHTML;a.match(/ASIN.?(\d{9}[X\d])/i)| a.match(/ISBN.?(\d{9}[X\d])/i)|a.match(/(\d\-[\-\d]{8}\-[X\d])/);is=RegExp.$1.replace(/-/g,''); if(!is){alert('NO ISBN');}else{window.open('http://natu.blue.coocan.jp/menu.htm?ISBN1='+is);}})();
ついでなので新しいインターフェース版のページへ飛ぶようにしました。
GreasemonkeyとSeahorse
数が数ですので明日の夜以降にリリースします
新しいインターフェース版の問題点
- 書名検索以外の問題点を列記
- ISBNコード入力エリアを設けたら各検索ボタンを非表示に出来なくなった
書名検索を行う図書館があと3館あるため、不要な図書館を非表示しなければ、画面がスクロールしてしまう。 - ボタンにフォーカスが当たっているときに、ポインタが変わらない、色が変わらない(CSSの問題か?)
- ISBNコード入力エリアを設けたら各検索ボタンを非表示に出来なくなった
備考
Amazonの詳細ページのURL形態が変わった場合に、同じようなGreasemonkeyスクリプトやBookmarklet、Seahouseスクリプトを作成されている方にアナウンスする方法はないのだろうか?ソレっぽい内容でググってコメント書いたり、トラックバック打ったりというのもなんだか変だしどうしたものか
スクリプトの修整
修整前)
var href = document.location.href; var index = href.indexOf('product'); var asin = href.substring(index+8,index+18);
修整後
var n=document.body.innerHTML; var ai=n.indexOf("ASIN"); var asin=n.substring(ai+5,ai+15);
たぶんこんな感じ