ChromeExtensionでクロスドメイン

 manifest.jsonでpermissionの設定すればクロスドメインできる...!できないらしい。
http://d.hatena.ne.jp/love_firefoxportable/20091214/1260801125

 background_page.htmlというファイルを作ってそこで、XMLHttpRequestして、結果を返してあげればできました。

manifest.json(てきとう)

{
    // Required
    "name": "***",
    "version": "1.0",
    
    // Recommended
    "description": "description",
    
    // needed
    "background_page": "background.html",
    // クロスドメイン許可するページ
    "permissions": [ "http://*/", "http://*/" ],
    "content_scripts": [
        {
            "js": [ "contents_script.js" ],
            // exclude_globsよくわからない
            "exclude_globs": [  ],
            // extensionを使うページ
            "include_globs": [ "http://*/*" ],
            "matches": [ "http://*/*", "https://*/*" ]
        }
    ],
    "matches": [ "http://*/*", "https://*/*" ]
}

manifest.json
ここ見ながら
http://dev.screw-axis.com/doc/chrome_extensions/ref/formats/manifest_file/


contents_script.js

// なんとかしてこの関数を呼び出す
function func() {
	chrome.extension.sendRequest(req,
		// 結果返った時の処理
		function(result) {
			alert("result"+result);
		}
	);
}

background_page.htmlはここを参考にしながら。
http://dev.screw-axis.com/doc/chrome_extensions/guide/background_pages/
結果の送受信は、ここを見ながら
http://dev.screw-axis.com/doc/chrome_extensions/guide/message_passing/
background_page.html

<html>
<head>
<script>
chrome.extension.onRequest.addListener(function(req, sender, sendResponse){

		// XMLHttpRequestオブジェクト生成
		var httpobj = new XMLHttpRequest();
		// 取得したいページのurl入れる
		httpobj.open("GET", "http://*/*", true);
		httpobj.send(null);
		// 受信時に起動するイベント
		httpobj.onreadystatechange = function()
		{
			// readyState値は4で受信完了
			if ((httpobj.readyState == 4))
			{
				// 結果返す
				sendResponse({response: httpobj.responseText});
			}
		}
});
</script>
</head>
<body></body>
</html>