いくつかAmazonの画像置換とかをJavaScriptで書いてみたりしましたが、そもそもAmazonで商品を見ている時には、画像を見ているわけで(あるならばですがね)、その画像のURLを一発で持ってこれれば良いということなわけだ、と、なんか「普通、最初にそれ考えるだろ」的なことに思い至りました。とりあえず考えてみていたら、Internet ExplorerのMeneExtでは、画像上で発生させると、event.srcElement
でimg
要素が拾えるので、それを使えば画像のURLを持ってくることができるということに気づきました。
てなわけで画像付きのAmazonアソシエイトリンクを作成するMenuExtのコードを書いてみる。
<html>
<script type="text/javascript" defer>
<!--
var aid = 'hail2unet-22';
var pWin = external.menuArguments;
if (pWin.event.srcElement.tagName == 'IMG') {
var uri = pWin.location.href;
var i = uri.indexOf('ASIN');
var asin = uri.substring(i + 5, i + 15);
var uri = "https://www.amazon.co.jp/exec/obidos/ASIN/" + asin + "/" + aid;
var imguri = new String(pWin.event.srcElement.src);
var title = pWin.document.title;
pWin.clipboardData.setData("text", "<a href=\"" + uri + "\" title=\"" +
title + "\"><img src=\"" + imguri + "\" alt=\"" + title + "\" /></a>");
}
//-->
</script>
</html>
これを適当なフォルダに保存して、IE MenuExtで「Associate this!」などというタイトルで登録するだけ。登録時には忘れずに、表示方法のところで画像上にチェックを入れておきましょう。
で、Amazonの各商品のページの*画像上で*右クリックし、Associate this!を選択すると、
<a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00021LRWM/hail2unet-22"
title="Amazon.co.jp: 音楽: To the 5 Boroughs [FROM US] [IMPORT] [EXPLICIT LYRICS]">
<img src="https://m.media-amazon.com/images/P/B00021LRWM.jpg"
alt="Amazon.co.jp: 音楽: To the 5 Boroughs [FROM US] [IMPORT] [EXPLICIT LYRICS]" />
</a>
というようなコードがクリップボードにコピーされます(見やすいように改行を入れていますが、実際には一行で)。
お、なかなか良いかも。
Bookmarkletには移植できるかな? 各商品ページではユニークっぽい「vspace=3 hspace=5 align=left border=0」とかいう文字列をキーにして探すこともできないことは無さそうだけど、かなり力技になりそう。興味がある方は作ってみたらどうでしょう? 人気者になれるかも!
私? メンドイ。