Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从chrome扩展弹出窗口加载JS 背景_Javascript_Html_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 如何从chrome扩展弹出窗口加载JS 背景

Javascript 如何从chrome扩展弹出窗口加载JS 背景,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我只想创建一个chrome扩展,点击扩展图标,它会加载一个加载javascript文件的弹出窗口 只需添加以下两个文件,我就可以创建一个仅html的弹出窗口: manifest.json { .. "browser_action": { "default_popup": "popup.html", .. } } "background": { "scripts": ["eventsPage.js"], "persistent": fals

我只想创建一个chrome扩展,点击扩展图标,它会加载一个加载javascript文件的弹出窗口

只需添加以下两个文件,我就可以创建一个仅html的弹出窗口:

manifest.json

{
  ..    
  "browser_action": {
    "default_popup": "popup.html",
    ..
  }
}
  "background": {
    "scripts": ["eventsPage.js"],
    "persistent": false
  }
popup.html

<html>
    ..
    hello world
</html>
并添加了一个简单的eventsPage.js文件:

chrome.runtime.onInstalled.addListener(onInit);
chrome.runtime.onStartup.addListener(onStartup);

function onInit() {
  console.log("on init");
}

function onStartup() {
  console.log("on startup");
}

if (chrome.runtime && chrome.runtime.onStartup) {
  chrome.runtime.onStartup.addListener(function() {
    console.log('on startup stuff');
  });
}
当我启动扩展并单击inspect查看chrome开发工具时。。控制台上没有显示任何内容:

我还尝试将eventsPage.js的src添加到popup.html

</head> 
  ..
  <script src="eventsPage.js"></script>
  <body>
  ..

..
..
但这并没有改变什么,我甚至在chrome开发工具中找不到eventsPage.js源代码

如何做到这一点?

有多种方法:

  • popup.html
    中添加脚本,例如
    popup.js
    ,并调用与事件页面交互

    popup.html

    ...
    <script src="popup.js"></script>
    ...
    
    eventsPage.js

    const testMethod = () => console.log('test');
    
  • 使用(此链接中有许多示例)与事件页面进行通信

  • 由于您希望在弹出页面和事件页面之间传输数据,因此还有许多其他解决方法,例如,我们可以使用全局存储,例如保存/加载/响应更改


  • 1.您正在交替使用背景页和事件页。。他们不一样。。背景页已弃用2。如果你能写一些样品就好了code@abbood事实上,背景页面并没有被弃用,只是用于不同的目的。我添加了一些简单的示例,这对您来说应该是一项简单的任务(您在iOS方面有经验:)。下面是一个后续问题:
    const testMethod = () => console.log('test');