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扩展(MV3)中使用不安全的内联代码?_Javascript_Html_Google Chrome Extension_Content Security Policy_Manifest.json - Fatal编程技术网

Javascript 有没有一种方法允许在chrome扩展(MV3)中使用不安全的内联代码?

Javascript 有没有一种方法允许在chrome扩展(MV3)中使用不安全的内联代码?,javascript,html,google-chrome-extension,content-security-policy,manifest.json,Javascript,Html,Google Chrome Extension,Content Security Policy,Manifest.json,我目前正在做一个chrome扩展(在清单版本3中),我正在尝试允许内联事件处理程序。在my popup.html中,我想在单击按钮时运行一个函数,如下所示: HTML: 运行扩展时,出现以下错误: 拒绝执行内联事件处理程序,因为它违反 遵循内容安全策略指令:“脚本src'self'”。 “unsafe inline”关键字、哈希('sha256-…')或nonce 启用内联执行需要('nonce-…') 我曾尝试将内容安全策略和nonce添加到我的JavaScript文件中(以允许内联执行工作)

我目前正在做一个chrome扩展(在清单版本3中),我正在尝试允许内联事件处理程序。在my popup.html中,我想在单击按钮时运行一个函数,如下所示:

HTML:

运行扩展时,出现以下错误:

拒绝执行内联事件处理程序,因为它违反 遵循内容安全策略指令:“脚本src'self'”。 “unsafe inline”关键字、哈希('sha256-…')或nonce 启用内联执行需要('nonce-…')

我曾尝试将内容安全策略和nonce添加到我的JavaScript文件中(以允许内联执行工作),但也没有成功:

"content_security_policy": {
    "extension_pages": "script-src 'self' 'nonce-baz'"
},
添加内容安全策略会导致以下错误:

“内容安全策略.扩展页面”:不安全的CSP值 指令“script src”中的“nonce-2726c7f26c”。无法加载 舱单


所以我想知道如何允许内联代码被执行。(我看过这篇文章:,但是,答案是使用清单版本2,而我使用清单版本3。)

我对制作chrome扩展知之甚少,但如果你使用
.addEventListener
,它可能会有所帮助。我听说不推荐使用onclick,因此您可能希望使用and
.addEventListener

在你的情况下,我认为应该是这样的:

html:

不确定这是否有帮助,但希望您能用它做点什么:)

function foo(x){
    console.log(x);
}
"content_security_policy": {
    "extension_pages": "script-src 'self' 'nonce-baz'"
},
<button id='putIdHere'>bar</button>
document.getElementById('putIdHere').addEventListener('click', {
   console.log('stuff')
});