如果您将 url 放入清单的权限部分,则可以从内容脚本进行跨域调用...
http://code.google.com/chrome/extensions/xhr.html
它似乎令人窒息的是您在请求 url 中输入的回调,而那是不需要的,所以我把它拿出来了。
这是您的代码的工作版本....
清单
{
"name": "dA Tooltip Thumbnail",
"version": "1.0.0",
"description": "What the name says.",
"permissions": [
"http://backend.deviantart.com/*"
],
"icons": {
"48" : "sample-48.png",
"128" : "sample-128.png"
},
"content_scripts": [
{
"matches": ["http://my.deviantart.com/messages/*"],
"js" : ["jquery-1.7.1.min.js","contentscript.js"]
}
]
}
内容脚本
$(".mcb-title a:first-child").each(function() {
var b=$(this).attr("href");
null!=b.match(/https?:\/\/fav\.me\/.*|https?:\/\/.*\.deviantart\.com\/art.*/)&&"true"!=$(this).attr("da-message-preview-attached")&&$.getJSON("http://backend.deviantart.com/oembed?url="+encodeURIComponent(b),$.proxy(function(b) {
$(this).addClass("da-message-preview").attr("rel",b.thumbnail_url).attr("da-message-preview-attached","true");
$(this).hover(function(a) {
window.daMessagePreviewTitle=this.title;
this.title="";
$("body").append('<p id="da-message-preview"><img src="'+this.rel+'"/></p>');
$("#da-message-preview").css( {top:a.pageY-10+"px",left:a.pageX+30+"px",position:"absolute",border:"1px solid #666",background:"#EEE",padding:"5px",display:"none","-webkit-border-radius":"6px","-moz-border-radius":"6px","border-radius":"6px","-webkit-box-shadow":"0px 2px 8px #000","-moz-box-shadow":"0px 2px 8px #000","box-shadow":"0px 2px 8px #000","z-index":"123456"}).fadeIn("fast")
},function() {
$("#da-message-preview").remove()
});
$(this).mousemove(function(a) {
$("#da-message-preview").css("top",a.pageY-10+"px").css("left",a.pageX+30+"px")
})
},this))
});
更改后我注意到的唯一错误是它试图获取一个 404 的 url ...
http://backend.deviantart.com/oembed?url=http%3A%2F%2Fnews.deviantart.com%2Farticle% 2F143885%2F
...小错误,我会让你摆脱那个错误;)。
哦,我把计时器的东西拿出来了,真的需要吗?当您单击图库时,您不会转到不同的网址吗?...因为如果您这样做,那么内容脚本将被重新注入(您可能需要为此添加更多匹配项,实际上并没有看到)。