我在谷歌浏览器扩展程序中使用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,而不是原始页面。
答案 0 :(得分:1)
在JSONP请求返回后,您需要向要修改的页面添加content script。该脚本将能够修改它注入的页面的DOM。内容脚本到位后,您可以使用消息在后台页面和内容脚本之间进行通信。所以基本上,你需要做的是send a message'确定jsonp已经恢复!'每当触发背景事件监听器onRequest
时。内容脚本收到此消息后,可以修改DOM。
更简单的选项(但更有限)是使用Programmatic injection的javascript到某个页面。