「アマゾンの商品ページのURLって、
SEO対策で長くなってる上に、
いろいろなパラメータがくっついてて複雑で扱いづらいので、
ASIN だけ取り出してそれだけを使って何かをするぜ!」
ということをやりたいので、
そのためのブックマークレットの雛形を作りました。
参考にしたサイトは以下:
- amazletツール
http://app.bloghackers.net/amazlet/
- G-Tools ブックマークレット
http://a-h.parfe.jp/einfach/archives/2004/0413103647.html
で、まずは雛形となる JavaScript コード:
var u = location.href;
if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) !=- 1) {
var asin = RegExp.$1;
ここで何かをする。
}
このコードを一行にしてリンクにするというのが基本。
詳しくは下記の応用例を見てください。
それぞれのブックマークレットは、
Amazon の商品ページで呼び出します。
応用例1:簡単なURLのアマゾン商品ページに飛ぶ
JavaScript コード:
var u = location.href;
if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) != -1) {
var asin = RegExp.$1;
location.href = 'http://www.amazon.co.jp/dp/' + asin;
}
ブックマークレット化(上記のコードを短くしています):
- Simple Amazon Url Bookmarklet:
[SAU]
同じウィンドウでページだけ変えるときは、
「javascript:(function(){...})()」とするみたいです。
関連記事:
- 最近のAmazonのアホみたいに長いURLをなんとかする
Greasemonkey (小野マトペ)
http://d.hatena.ne.jp/ono_matope/20070330#1175262969
応用例2:ヤサゾンのリンク作成ページを別ウィンドウで開く
JavaScript コード:
var u = location.href;
if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) != -1) {
var asin = RegExp.$1;
void(window.open('http://yasazon.com/mklink.cgi?asin=' + asin));
}
ブックマークレット化(上記のコードを短くしています):
- Yasazon Make Link Bookmarklet:
[YML]
応用例3:アフィリエイトURLにする
アソシエイトID付きのURLに変換します。
中身は応用例1とほぼ同じです。
JavaScript コード:
var u = location.href;
if (u.search(/[^0-9A-Z]([B0-9][0-9A-Z]{9})([^0-9A-Z]|$)/) != -1) {
var asin = RegExp.$1;
location.href = 'http://www.amazon.co.jp/exec/obidos/ASIN/'
+ asin + '/yto-22/ref=nosim/';
}
ブックマークレット化(上記のコードを短くしています):
- Asamasi Bookmarklet:
[ASMS]
アソシIDは各自変更してください。
フォロー
瀬戸口さんのコメント:
http://twitter.com/setomits/status/1034125088
URL から取るより
document.getElementById('ASIN').getAttribute('value')
とかの方が良くないです?
確かにこの方法だと誤りなくASINが取得できるのですが、
同じアマゾンの商品ページでもカスタマーレビューページ
(http://www.amazon.co.jp/review/product/4569702791)
などでは id="ASIN" がなかったりするので、使えないのです。
しょんぼり。
ちなみにこのURL、amazletのブックマークレットは機能しません。
さみしいですね。


