chrome.extension.onRequest监听器达到原始内容

时间:2012-05-24 16:32:49

标签: javascript google-chrome google-chrome-extension jsonp

我在谷歌浏览器扩展程序中使用JSONP。 为了使它工作,我不得不添加

chrome.extension.onRequest.addListener(onRequest);

然后像这样提出请求:

var jsonpURL;
$(document).ready(function(){
   /* i make the "someurl" here from a div's content */
   jsonpURL="someurl";
   chrome.extension.sendRequest({action:'getJSON',url:jsonpURL});
});

在听众中我想在页面上隐藏一些div

function onRequest(request, sender, callback) {
    if (request.action == 'getJSON') {
        $.getJSON(request.url, function(data){
                // HIDE SOME DIV
        });
    }    
}

问题:

如何在onRequest功能中找到原始网页的内容?或者,如果我根本不能,我如何根据请求的结果隐藏一些div? 我尝试了jquery选择器并发现我到达了bg.htlm,而不是原始页面。

1 个答案:

答案 0 :(得分:1)

在JSONP请求返回后,您需要向要修改的页面添加content script。该脚本将能够修改它注入的页面的DOM。内容脚本到位后,您可以使用消息在后台页面和内容脚本之间进行通信。所以基本上,你需要做的是send a message'确定jsonp已经恢复!'每当触发背景事件监听器onRequest时。内容脚本收到此消息后,可以修改DOM。

更简单的选项(但更有限)是使用Programmatic injection的javascript到某个页面。