扩展无法做ajax请求

时间:2014-03-03 18:06:58

标签: google-chrome-extension

我想根据ajax请求的回答操作网页。基本上我会在youtube中搜索页面标题并首先检索youtube。

var search_input = $("#title").text();
var keyword= encodeURIComponent(search_input);
// Youtube API 
var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&max-results=1&v=2&alt=jsonc'; 

$.ajax
({
type: "GET",
url: yt_url,
dataType:"jsonp",
success: function(response)
{

console.log("succeded");

if(response.data.items)
{
$.each(response.data.items, function(i,data)
{
var video_id=data.id;
var video_title=data.title;
var video_viewCount=data.viewCount;
// IFRAME Embed for YouTube
var video_frame="<iframe src='http://www.youtube.com/embed/"+video_id+"' frameborder='0' type='text/html'></iframe>";

var final="<div>"+video_frame+"</div><div id='count'>"+video_viewCount+" Views</div>";

$("#videos").html(final); // Result

});
}
else
{
$("#videos").html("<div id='no'>No Video</div>");
}
}
});

这是manifest.json

{
    "content_scripts": [
        {
            "matches": [
                "https://*.website.com/*",
                "*://*.youtube.com/*"
            ],
            "js": [
                "jquery.js",
                "mymanipulatır.js"
            ]
        }
    ],
    "name": "Name",
    "icons": {
        "128": "128x128.png"
    },
    "homepage_url": "http://github.com/",
    "version": "1.4",
    "manifest_version": 2,
    "developer": {
        "name": "may"
    },
    "description": "youtube"
}

在尝试发出ajax请求时,扩展会抛出Uncaught ReferenceError: jQuery11100021788313053548336_1393869626682 is not defined。我错过了什么?

1 个答案:

答案 0 :(得分:0)

当从注入网页的内容脚本执行跨站点XHR时,您需要在清单的“权限”部分声明您希望能够连接的URL模式,就像使用从您的一个扩展程序内部执行XHR自己的独立页面(例如后台页面,浏览器操作弹出窗口等)。

请参阅:https://developer.chrome.com/extensions/xhr