javascript - Chrome 扩展 - 将变量从 HTML 文件传递到 .js 文件
问题描述
我正在尝试将一个变量从我的 Chrome 扩展程序的 HTML 传递到我的 content_script.js 文件中。第一次使用javascript,所以我很迷茫。我已经尝试了一些东西,但它们似乎都不起作用。这是我最近的尝试:
popup.html
<html>
<head><title>activity</title></head>
<body>
<input id="email" type="email" placeHolder="Email" /> <br />
<button id="clickactivity">Create Account</button> <br />
<script src="popup.js"></script>
</body>
</html>
popup.js
function injectTheScript() {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
// query the active tab, which will be only one tab
//and inject the script in it
chrome.tabs.executeScript(tabs[0].id, {file: "content_script.js"});
});
}
document.getElementById('clickactivity').addEventListener('click', injectTheScript);
content_script.js
function registerAccount() {
regEmail = document.getElementById("email");
document.getElementById("register-email").value=regEmail.value;
}
registerAccount();
解决方案
您的内容脚本和弹出脚本在不同的文档上运行:您不能直接从另一个访问其中一个的变量。
试试这个:
popup.js
document.getElementById('clickactivity').onclick = () => {
chrome.tabs.executeScript({code: `
var inputToFill = document.getElementById('register-email');
if (inputToFill) inputToFill.value = '${document.getElementById('email').value}';
`});
};
推荐阅读
- .net - 为什么 .NET 5 项目除了 EXE 之外,还要创建两个同名的 DLL,一个在主二进制文件夹中,一个在 refs 子文件夹中?
- visual-studio-code - VSCode:如何构建一个带有少量模块和测试、调试和 linting 的简单 python 包?
- reactjs - 如何在反应中读取 PNG 的元数据
- python - 电路 Python MQTT 异常块
- python - Sed 从命令行工作,但不在 Python 脚本中
- .net - 如何使用 docker 在 Heroku 上运行 https 服务器?
- python - 跨度标签内文本的美丽汤提取
- python - 比较列值是列表的熊猫数据帧
- oracle - 与智能合约预言机交互
- r - 基于 2 个引用字符串列创建新列