我在开发chrome-extensions方面遇到了问题。
我有内容脚本:
window.addEventListener("load",function(){
var html = document.getElementsByTagName('html')[0];
var title = document.getElementsByTagName('title')[0].innerHTML;
if(html){
chrome.extension.sendRequest({akce: 'content', title: title},function(response){});
alert(title);
}
},false);
然后我有一个BG页面:
chrome.extension.onRequest.addListener(function(request,sender,sendResponse){
if(request.akce == 'content'){
console.log(request.title);
}
});
问题是当我开始输入地址栏时,我的内容脚本会加载到自动完成列表中的第一个站点上。正如您在下面的屏幕截图中看到的那样,内容脚本在我输入地址栏之前加载并加载到我还没有的网站上。
我不知道发生了什么。拜托,请帮助我。
答案 0 :(得分:4)
解决方案是从后台页面注入脚本。
示例:从bg页面获取引荐来源
chrome.tabs.executeScript(tabId,{
code: "chrome.extension.sendRequest({action: 'content_refer', url: document.referrer},function(response){});"
});
chrome.extension.onRequest.addListener(function(request,sender,sendResponse){
if(request.action == 'content_refer'){
wipstats.allPages[sender.tab.id].ref = request.url;
}
});
答案 1 :(得分:0)
我猜你已经在Chrome中启用了“即时浏览”选项,我前段时间遇到了同样的问题,正因为这个原因我禁用了该功能并且再也没用过了。