Google chrome extension 在刷新页面之前,Chrome扩展内容脚本无法侦听事件

Google chrome extension 在刷新页面之前,Chrome扩展内容脚本无法侦听事件,google-chrome-extension,content-script,Google Chrome Extension,Content Script,我想创建一个扩展,将html注入到安装后立即打开的每个页面中,而无需重新加载 webpage.html: <html> <head> <meta charset="utf-8" /> <title>Extension</title> <script> var go = function() { var event = document.createEvent('Event'); event.initEve

我想创建一个扩展,将html注入到安装后立即打开的每个页面中,而无需重新加载

webpage.html:

<html>
<head>
<meta charset="utf-8" />
<title>Extension</title>
<script>
  var go = function() {
    var event = document.createEvent('Event');
    event.initEvent('hello');
    document.dispatchEvent(event);
  };
</script>
</head>
<body>
<a href="javascript:go();">Click me</a> 
</body>
</html>
content_script.js:

(function() {
  document.addEventListener("hello", function(data) {
  chrome.runtime.sendMessage("test");
 });
})();
background.js:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  alert("message received");
  console.log("background message received");
});                 
如果已安装扩展,则它可以工作。但如果在加载网页后安装了扩展,则除非重新加载,否则内容脚本无法接收从网页发送的事件

有没有一种方法可以在内容脚本中接收事件而不重新加载?

有一个很长的过程

简而言之,如果在初始化时需要内容脚本,那么应该执行
chrome.tabs.query({},…)
在后台脚本初始化时,将使用
chrome.tabs.executeScript({file:'content_script.js})在所有选项卡中注入脚本

有一个很长的问题

简而言之,如果在初始化时需要内容脚本,那么应该执行
chrome.tabs.query({},…)
在后台脚本初始化时,将使用
chrome.tabs.executeScript({file:'content_script.js})在所有选项卡中注入脚本

有一个很长的问题

简而言之,如果在初始化时需要内容脚本,那么应该执行
chrome.tabs.query({},…)
在后台脚本初始化时,将使用
chrome.tabs.executeScript({file:'content_script.js})在所有选项卡中注入脚本

有一个很长的问题

简而言之,如果在初始化时需要内容脚本,那么应该执行
chrome.tabs.query({},…)
在后台脚本初始化时,将使用
chrome.tabs.executeScript({file:'content_script.js})在所有选项卡中注入脚本

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  alert("message received");
  console.log("background message received");
});