Content Scriptのクロスサイトリクエストに関する私的メモ

クロスサイトリクエス


Chrome ExtentionのContent ScriptでXMLHttpRequestする場合はbackground-pageでやらないと駄目なんだぜ?
まあ詳しくはここらへんを見てくださいよ。
http://code.google.com/chrome/extensions/overview.html
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/

これを使うとリンク先の内容を調べてツールチップを出す、みたいなことができたりするの。

ぼくはこんな感じで汎用的に使ってる。
この実装だとバックグラウンド側ではなくコンテント・スクリプト側で通信結果を処理することになるんだけど、本当はどっち側で処理するのがいいのかな?
Javascript初心者なんで、よくわからないよ><。
コンテント・スクリプト

chrome.extension.sendRequest({'action' : 'fetchPage', 'url' : url},  function(data) 
{
    if (data.text)
    {
	//data.textに対する処理を記述
    } 
});

バックグラウンド・ページ

<html>
<script>
function fetchPage(callback, url) {
	var xhr = new XMLHttpRequest();
	xhr.onreadystatechange = function(data) {
		if (xhr.readyState == 4) {
			if (xhr.status == 200) 
			{
				var data = xhr.responseText;
				var target = url
				callback({"url" : url, "text" : data});
			} else {
				callback(null);
			}
		}
	}
	xhr.open('GET', url, true);
	xhr.send();
};

function onRequest(request, sender, callback) {
    if (request.action == 'fetchPage') {
    	fetchPage(callback, request.url);
    }
};
// Wire up the listener.
chrome.extension.onRequest.addListener(onRequest);

</script>
</html>