マニフェストのアクセス許可部分に 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
...小さなエラーです。それを取り除くのはあなたに任せます;)。
ああ、タイマーのものを取り出しましたが、それは本当に必要ですか? ギャラリーをクリックしたときに別の URL に移動しませんか?...そうすると、コンテンツ スクリプトが再注入されるためです (そのための一致をさらに追加する必要があるかもしれませんが、実際には見ませんでした)。