友達と簡単に作れそうだね、と話していたのを、やっつけ仕事でやってみた。

Amazon.co.jpの個別商品ページでボタンを押すと、特定のアフィエイトIDがヒモ付されたページを開き直してくれるChrome拡張機能です。

ポップアップで実行されるJavaScriptはこんな感じ。

window.onload = function() {
    ct = chrome.tabs;
    ct.getSelected(window.id, function (tab) {
	asin = tab.url.match(/\/([0-9]|[A-Z]){10}\//g);
        var url = 'http://www.amazon.co.jp/dp/product' + asin + 'inashiro-22/';
        ct.update(tab.id,{url: url});
        window.close();
    });
};

inashiro-22を自分のアフィリエイトIDに変えればOK。

amazon_affiliate_support.zip

パッケージ化されていない状態で置いておくので、インストールするときは拡張機能のページでデベロッパーモード→パッケージ化されていない拡張機能を読み込む…からどうぞ。

Enjoy!

, ,

備忘録がわり。

manifest.jsonでボタンがクリックされたらpopup.htmlを読み込むようにしておく

popup.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link href="popup.css" rel="stylesheet">
<script src="popup.js" type="text/javascript"></script>
</head>
<body>
<div id='url'>
</div>
</body>
window.onload = function() {
  chrome.tabs.getSelected(window.id, function (tab) {
    //tab.urlに開いているタブのURLが入っている
    var url = document.createTextNode(tab.url);
    document.getElementById('url').appendChild(url);  
  });
};

これでポップアップにカレントタブのURLがテキストとして表示される。
URLの取得の確認で使っているだけなのであまり関係ないけど、cssでdivの大きさを事前に指定しておかないと、DOMで書き換える前には何も入ってない(=大きさが最小)のですごーく見にくい。

取得したURLにごにょごにょして、そこにジャンプするとか結構簡単そう。

, ,