[英]Chrome Extension - How to pass variables from JS to popup.html?
[英]how to load JS from a chrome extension popup
我只是想创建一个 chrome 扩展,在其中单击扩展图标,它会加载一个加载 javascript 文件的弹出窗口。
只需添加这两个文件,我就可以仅执行 html 弹出窗口:
清单文件
{
..
"browser_action": {
"default_popup": "popup.html",
..
}
}
弹出窗口.html
<html>
..
hello world
</html>
我想实际加载一个 chrome事件页面,以便弹出页面调用事件页面并与之交互。
我将此添加到manifest.json
"background": {
"scripts": ["eventsPage.js"],
"persistent": false
}
并添加了一个简单的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');
});
}
当我启动扩展程序并单击检查以查看 chrome 开发工具时.. 控制台上没有显示任何内容:
我还尝试将eventsPage.js的 src 添加到popup.html :
</head>
..
<script src="eventsPage.js"></script>
<body>
..
但这没有任何改变,我什至无法在 chrome 开发工具中找到 eventsPage.js 源。
我该怎么做呢?
很多方法:
在popup.html
添加一个例如popup.js
的脚本并调用chrome.runtime.getBackgroundPage(function callback)
与事件页面进行交互。
弹出窗口.html
... <script src="popup.js"></script> ...
弹出窗口.js
chrome.runtime.getBackgroundPage(backgroundPage => backgroundPage.testMethod());
事件页面.js
const testMethod = () => console.log('test');
使用消息传递(此链接中有很多示例)与事件页面进行通信。
由于您要在弹出页面和事件页面之间传输数据,因此还有许多其他解决方法,例如,我们可以使用全局存储(例如chrome.storage
来保存/加载/响应更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.