javascript – 在Chrome扩展程序中加载内容脚本

前端之家收集整理的这篇文章主要介绍了javascript – 在Chrome扩展程序中加载内容脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有开发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);
    }
});

问题是,当我开始键入地址栏时,我的内容脚本将加载到首先出现在自动完成列表中的站点上.正如您在下面的屏幕截图中看到的那样,内容脚本在我输入地址栏之前加载并加载到我还没有的网站上.

我不知道发生了什么.拜托,请帮帮我.

screenshot

最佳答案
解决方案是从后台页面注入脚本.

示例:从bg页面获取referrer

chrome.tabs.executeScript(tabId,{
    code: "chrome.extension.sendRequest({action: 'content_refer',url: document.referrer},function(response){});"
});

chrome.extension.onRequest.addListener(function(request,sendResponse){
    if(request.action == 'content_refer'){
        wipstats.allPages[sender.tab.id].ref = request.url;
    }
});

猜你在找的JavaScript相关文章