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>