Amazon商品ページからhontoの検索結果を開くブックマークレット

書籍(和書)の購入に際してはhontoをよく使うので、Amazonの商品ページからhontoへ飛べるブックマークレットを探した。

上の記事にあるものを入れてみたが、ISBNをうまく取得できなかったので素人ながらJavaScriptコードを以下のように修正した。

javascript:(function(){
var baseUrl='https://honto.jp/netstore/search.html?tbty=1&isbn=';
var match=document.body.innerText.match(/978-(\d{10})/);
if (match && match[1]) {
    var isbn=match[1].replace('-', '');
    open(baseUrl+isbn, '_blank');
} else {
    alert('ISBNコードが取得できませんでした');
}   
})()

なお、個人的に電子書籍の結果は不要なので、紙の本の結果だけが出るように修正してある。2行目の「tbty=1&」を抜けば、hontoの電子書籍の検索結果も出る。また、「tbty=1&」を「tbty=2&」にすれば、hontoの電子書籍のみの検索結果が出る。

元の記事にもこうあるが、飛ぶ先はhontoだけでなく任意のサイト(の検索結果ページ)に変更できる模様。

2行目のbaseUrlを変更すれば、任意のサイトにリダイレクトすることができます。例えばヨドバシ.comの書籍検索は 'https://www.yodobashi.com/category/81001/?word='

Amazon商品ページからhontoの検索結果を開くbookMarklet|とものり|note

使い方

  1. 適当なサイトをブックマークする。
  2. 登録したブックマークを編集、上のコードをURL欄に入力して保存する。名前も分かりやすいように変えるといい。
  3. Amazonの商品ページで本ブックマークレットを選択して実行すると、hontoでの検索結果が別タブで開く。

2021-07-16更新

機能しなくなったので調べてみたら、Amazon商品ページ記載の「ISBN-13」直後のコロンが、例えば以下のように、なぜか書字方向を指定するためのUnicode制御文字に挟まれていた。

<li><span class="a-list-item">
<span class="a-text-bold">ISBN-13
&rlm;
:
&lrm;
</span>
<span>978-4150113377</span>
</span></li>

これらは「文字参照」や「HTMLエンティティ」と呼ばれる種類の文字だが、ページ上では不可視となり、これをそのままコードに入れても動かない。とりあえず「『ISBN-13 : 』とその直後の文字列を検索」から「『978-』で始まる文字列を検索」するように変更したら機能したのでそのように修正した。これだと和書でしか機能しないが、そもそもhontoで洋書は買わないので個人的にはこれで十分。ド素人なので、もっといい記述にできる人がいたら教えて下さい。