1
Google Chromeのプラグインをプログラミングしていますが、問題はjQuery $ .getを呼び出せないという問題です。コンソール:リソースの読み込みに失敗しました。
//popup.html
<script>
_get = function(url, callback) {
console.log("sending get");
chrome.extension.sendRequest({action:'get',url:url}, callback);
}
_get('https://www.meebo.com/mcmd/start.cgi?type=mobile&allowIPChange=true', function(data) {
alert(data);
});
</script>
//background.html
<script src="jquery.js"></script>
<script type="text/javascript">
function onRequest(request, sender, callback) {
if (request.action == 'getJSON') {
$.getJSON(request.url, callback);
}
if (request.action == 'ajax') {
$.ajax({
type : request.type,
url : request.url,
async : async,
success : callback
});
}
if (request.action == 'get') {
$.get(request.url, callback);
}
if (request.action == 'post') {
$.post(request.url, request.data, callback);
}
}
chrome.extension.onRequest.addListener(onRequest);
</script>
えー、どうやって部品が配線されているか説明できますか?あなたは明らかに要求を実行するために2つの異なる方法を使用しています(chrome組み込みおよびjquery)。最初のスニペットはどのように問題に関連していますか? – moritz
問題は、Chromeのセキュリティ上の制約のためにコンテンツファイルでjQuery-ajax-functionsを使用できないため、popup.htmlでajaxリクエストを実行しています。chrome.extension.sendRequest({アクション: 'get'、url:url}、コールバック);それらはchrome.extension.onRequest.addListener(onRequest)でbackground.htmlにキャッチされています。バックグラウンドページには制限がないため、実行されます。失敗している部分は$ .get(request.url、callback)です。関数は呼び出されますが、結果はコンソール出力 "リソースのロードに失敗しました" –