首页 > chrome 插件调用 jsonp 的问题

chrome 插件调用 jsonp 的问题

我想针对 weibo.com 写一个插件,有一个步骤需要获取我服务器上的数据。 由于浏览器控制了JS跨域,所以想到用jsonp的方式解决。

具体实现的步骤是:
1.服务器接口代码( url : http://127.0.0.1/push):

echo "push(1,2,3)";

2.客户端接收代码

 var src = document.createElement("script"); 
 src.src="http://127.0.0.1/push";
 document.body.appendChild(src);

 var push = function(arg1,args2,arg3){
    alert(arg1+args2+args3);
 }

上边的代码直接在 F12 控制中心执行是没有问题的。

可是封装成chrome插件的时候提示 push is not defined .

我怀疑是因为插件和window不在同一个闭包内,所以导致插件定义的push函数,window不存在。

请问这个问题需要怎么修改 ? 或者有其他的方案实现跨域的访问么?

============================================================

目前问题已解决 ,在插件的 manifest.json 放开对任何域名的权限就不存在跨域问题。
"permissions": [ "http://*/*" ],

但是在页面如何回调插件中定义的function呢,这个还没有弄明白,期待有人解惑??


这个如果要做的话比较麻烦,首先chrome的机制导致了content-script和原始页面的域存在两个沙箱中,交汇的点只能存在于dom元素,如果一定要让页面调到你扩展的接口,你可以写一个script标签引入一个script文件,里面包含你的接口,然后页面就能够调用到你刚才这个文件的接口,然后这个接口中你可以在触发下点击某个dom元素,然后如果你content-script绑定了事件,那么就相当于页面间接调用了content-script的扩展

【热门文章】
【热门文章】