javascript - chorme 扩展错误:未捕获的 ReferenceError:未定义窗口
问题描述
我正在开发一个 Chrome 扩展程序(没有太多经验),我有以下代码:
window.onload = function () {
validateCNPJ();
};
function validateCNPJ() {
document.querySelector('div[data-field-name="CNPJ"] > input').addEventListener('keydown', (bla) => {
let ble = bla.target.value;
console.log(ble.length)
if (ble.length > 17) {
bla.preventDefault()
bla.stopPropagation()
return
}
ble = ble.replace(/\D/g, "")
ble = ble.replace(/^(\d{2})(\d)/, "$1.$2")
ble = ble.replace(/^(\d{2}).(\d{3})(\d)/, "$1.$2.$3")
ble = ble.replace(/.(\d{3})(\d)/, ".$1/$2")
ble = ble.replace(/(\d{4})(\d)/, "$1-$2")
bla.target.value = ble;
})
}
我添加了 window.load 以便在页面加载时激活 validateCNPJ 功能。该功能实时验证表单中的特定字段。
问题是,当我上传扩展程序时,它会显示一条错误消息:
Uncaught ReferenceError: window is not defined
我在浏览器的控制台中测试了函数 validateCPNJ 中的代码,它工作正常。
清单文件是这样的:
{
"name": "CRM Validation Extension",
"description": "Extension that validate fields of a opportunity",
"version": "0.1",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
}
}
我能做些什么来解决这个问题?
谢谢!
解决方案
我设法解决了这个问题。以前我的 manifest.json 是这样的:
{
"name": "CRM Validation Extension",
"description": "Extension that validate fields of a opportunity",
"version": "0.1",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
}
}
我更改了背景对象并替换为以下内容:
"content_scripts":[
{
"matches": [
"<all_urls>"
],
"js": ["background.js"]
}
]
这解决了我遇到的问题。
推荐阅读
- python - 在 pandas 中处理日期时间字符串中的 T
- web-component - Lottie player 在运行时更改 src 属性时不更新底层动画?
- python - BeautifulSoup-scrape html code from a website not working
- algorithm - Leetcode 572:另一棵树的子树运行时空分析
- linux - JMeter Perfmon 插件服务器代理错误:java.net.SocketException:权限被拒绝
- c++ - Protobuf:将 C++ 序列化/反序列化为 Js
- ibm-cloud-code-engine - 从 Cloud Engine App 访问 VPC 中的数据库
- reactjs - 如何在 React 中正确使用 State()
- python - Python Selenium:我无法点击按钮 - 没有对应于按钮标签的 id、值、名称
- javascript - 邀请创建的事件(discord.js v12)