« 困ったときのベタ辞典 | トップページ | 改正祝日法、成立 - その影響を考える »
2005.05.11
右クリックで Amazonアソシエイト (画像付き) 【2005年版】
最終更新: 2006年1月23日
アマゾンアソシエイトリンクの新しい形式に合うように、 「右クリックで Amazonアソシエイト (画像付き)」の改定版を作りました。
すでに旧バージョンを設置済みの場合は、上書きしてください。今回新たに設置する場合は、他の MenuExt の設置方法を参考にしてください。
それでは、ソースです。
ソース
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> <SCRIPT language="JavaScript" type="text/javascript"> // 右クリックで Amazonアソシエイト (画像付き) // -- 画像付きでAmazonアソシエイトリンクを生成する MenuExt // Copyleft 2004, 2005 by H.Tsujimura (tsupo@na.rim.or.jp) // Ver 1.0 30 May 2004 最初の公開バージョン // Ver 1.1 22 Jun 2004 改訂版 // Ver 2.0 11 May 2005 新しい形式のリンクに対応 // Ver 2.0a 23 Jan 2006 サーバ側に JavaScript を設置しなくても、とりあえずは機能するようにした // なお、本スクリプトが生成するアマゾンアソシエイトの html ソースを利用するには、 // (a) あらかじめ、サーバ側に以下の内容の JavaSctipt ファイルが設置済みであり、 // (b) 本スクリプトの生成した html ソースの貼り付け先の Web ページ(ブログも含む)で、当該 JavaScript を // インクルードする // ことで、当該商品の画像が用意されていない場合は、「No Image」画像が代わりに表示されるようになります。 /* 以下、サーバ側に設置する JavaScript のソース ↓↓ ここから ↓↓ function replaceImageForAmazon(img,rep_img) { if (img.width == '1' && img.src.match(/\.01\./)) { img.src = rep_img; // 『「画像がありません」画像』を代替画像とする } else if (img.width == '1') { img.src = img.src.replace('.09.','.01.'); // *.09.* 画像の代用として *.01.* を採用する if (img.width == '1') img.src = rep_img; } } window.onload = function(){ oElements = document.getElementsByTagName("img"); for (i = 0; i < oElements.length; i++) { if ( oElements[i].src.match("http://images-jp.amazon.com/images/") ) replaceImageForAmazon(oElements[i],"http://images-jp.amazon.com/images/G/09/icons/no-img-sm.gif"); } } ↑↑ ここまで ↑↑ */ function translateString(str) { var result = ""; var len = str.length; var rep = 0; var i; for ( i = 0; i < len; i++ ) { if ( str.charAt(i) == '\n' ) { if ( rep == 0 ) result += '<br />'; rep++; continue; } else if ( str.charAt(i) == '\r' ) continue; rep = 0; if ( str.charAt(i) == '>' ) result += ">"; else if ( str.charAt(i) == '<' ) result += "<"; else if ( str.charAt(i) == '&' ) result += "&"; // else if ( str.charAt(i) == ' ' ) // result += " "; else if ( str.charAt(i) == '"' ) // " result += """; else result += str.charAt(i); } return ( result ); } obj = external.menuArguments; // 右クリック時の引数オブジェクト page_url = obj.document.URL; // いま見ているサイト(ページ)のURL title_txt = obj.document.title; // いま見ているサイト(ページ)のタイトル str = obj.document.selection.createRange().text; // 選択されている文字列 // ↓↓ 自分のアソシエイトIDに書き換えてください var assoc = "tsuporoswebpa-22"; // ↑↑ 自分のアソシエイトIDに書き換えてください var ai = page_url.indexOf('ASIN'); var asin = page_url.substring(ai+5,ai+15); if ( ai == -1 ) { ai = page_url.indexOf('books'); asin = page_url.substring(ai+6,ai+16); } nodeS = title_txt.indexOf(' ') + 1; nodeE = title_txt.indexOf(':'); nodeStr = title_txt.substring(nodeS,nodeE); rep_img = "icons/books/comingsoon_books.gif"; if ( title_txt.match("アダルト") ) rep_img = "icons/dvd/adult-cover-image-thumb.gif"; else if ( nodeStr == "洋書" ) rep_img = "icons/english-books/comingsoon_fbooks.gif"; else if ( nodeStr == "エレクトロニクス" ) rep_img = "icons/electronics/no-image-ce.gif"; else if ( nodeStr.match("ホーム") ) rep_img = "hardlines/kitchen-icon/placeholder-icon.gif"; else if ( nodeStr == "音楽" ) rep_img = "icons/music/comingsoon_music.gif"; else if ( nodeStr == "DVD" ) rep_img = "icons/dvd/comingsoon_dvd.gif"; else if ( nodeStr == "ビデオ" ) rep_img = "icons/video/comingsoon_video.gif"; else if ( nodeStr == "ソフトウェア" ) rep_img = "icons/software/comingsoon_software.gif"; else if ( nodeStr == "ゲーム" ) rep_img = "icons/videogames/comingsoon_games.gif"; else if ( nodeStr.match("おもちゃ") ) rep_img = "icons/no-img-sm.gif"; // 従来 <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4091370799/tsuporoswebpa-22">ないしょのつぼみ 1 (1)</a> // 2005年4月以降 <a href="http://www.amazon.co.jp/exec/obidos/redirect?path=ASIN/4091370799&link_code=as2&camp=247&tag=tsuporoswebpa-22&creative=1211">ないしょのつぼみ 1 (1)</a><img src="http://www.assoc-amazon.jp/e/ir?t=tsuporoswebpa-22&l=as2&o=9&a=4091370799" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> // amazonUrl = 'http://www.amazon.co.jp/exec/obidos/ASIN/'+asin+'/'+assoc; amazonUrl = 'http://www.amazon.co.jp/exec/obidos/redirect?path=ASIN/'+asin+'&link_code=as2&camp=247&tag='+assoc+'&creative=1211'; linkString = title_txt.substring(title_txt.indexOf(':')+2,title_txt.length); // aff_url = amazonUrl + "/ref=nosim/"; // 商品ページへのリンク aff_url = amazonUrl; // 商品ページへのリンク aff_string = '<a href="' + aff_url + '" target="_blank">' + linkString + '</a>'; rep_img = "http://images-jp.amazon.com/images/G/09/" + rep_img; link = '<a href="'+amazonUrl+'"><img src="http://images-jp.amazon.com/images/P/'+asin+'.09.MZZZZZZZ.jpg" border="0" alt="' + linkString + '" /></a>'; track_url = 'http://www.assoc-amazon.jp/e/ir?t='+assoc+'&l=as2&o=9&a='+asin; track_string = '<img src="' + track_url + '" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />'; if ( str == "" ) prompt('', aff_string + track_string + "<br />" + link); else { qTag = '<blockquote cite="' + page_url + '" style="width: 88%; padding: 3px;"><div style="float: left; width: 65%;"><p>' + translateString(str) + '</p></div><div style="float: right; width: 34%;"><p style="background-color: #FFF;">' + link + '</p></div><p style="clear: both; background-color: #FFF;"><cite>' + aff_string + track_string + '</cite></p></blockquote>'; prompt('', qTag); } </SCRIPT>
使用例
初回特典
オリジナル ポコ太 携帯ストラップ 付き
※初回版がなくなりしだい通常版に切り替わります。ご注文はお早めに。
投稿者: tsupo 2005.05.11 午後 08:48
| 固定リンク
|
|
|
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: 右クリックで Amazonアソシエイト (画像付き) 【2005年版】:
» 右クリックで Amazon アソシエイト 「なか見! 検索」対応版 from 観測気球
アマゾンで始まったばかりの「なか見! 検索」を手軽に利用できるように、「右クリックで Amazon アソシエイト」を改造してみました。 続きを読む
» 右クリックで Amazon (2006年5月版) from 観測気球
Amazon.co.jp の商品個別ページの URL が http://www.amazon.co.jp/exec/obidos/ASIN/ASIN番号/ から http://www.amazon.co.jp/gp/product/ASIN番号/ に変更されました。それに合わせて、「右クリックで Amazon」も書き直してみました。... 続きを読む
コメント
「右クリックすると
マイナーなブログに毎回対応します
投稿者: 酢鶏@人工無能 (2005.05.12 午前 07:21)