5

我在开发 chrome 扩展时遇到问题。

我有内容脚本:

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);
    }
});

问题是当我开始输入地址栏时,我的内容脚本会加载到自动完成列表中的第一个站点上。正如您在下面的屏幕截图中所见,内容脚本在我在地址栏中按 Enter 之前已加载,并且已加载到我尚未加载的站点上。

我不知道发生了什么。请,请帮助我。

截屏

4

2 回答 2

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;
    }
});
于 2012-09-14T12:32:32.843 回答
0

我猜你已经在 Chrome 中启用了名为“即时浏览”的选项,我前段时间遇到了同样的问题,正是由于这个原因,我禁用了它并且不再使用它。

于 2012-09-12T14:36:21.743 回答