我尝试制作一个非常简单的Chrome扩展程序,当您点击按钮时会发出警报,但它无法正常工作。我收到以下错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:&#34; script-src&#39; self&#39;铬扩展资源:&#34 ;. “不安全 - 内联”和“不安全”。关键字,哈希(&#39; sha256 -...&#39;)或nonce(&#39; nonce -...&#39;)是启用内联执行所必需的。 < /强>
有人可以帮忙吗?这就是我现在所拥有的:
popup.html
<html>
<body>
<input type = "button" id = "the_button" value = "My button" onclick = "sayHi()"></input>
</body>
<script> src = "popup.js" </script>
</html>
popup.js
function sayHi() {
alert("hi")
}
的manifest.json
{
"manifest_version": 2,
"name": "Test",
"description": "Test Extension",
"version": "1.0",
"icons": {
"48": "icon.png"
},
"permissions": [
"http://*/*",
"https://*/*"
],
"content_scripts": [{
"matches": ["http://*/*", "http://*/*"],
"js": ["jquery.js", "popup.js"]
}],
"browser_action": {
"default_title": "This is a test",
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
答案 0 :(得分:4)
<script> src = "popup.js" </script>
应该是
<script src="popup.js"></script>
我想......
答案 1 :(得分:3)
问题出在这里
<script> src = "popup.js" </script>
要包含js文件,请使用
<script src="popup.js"></script>
当您尝试在文件中放入内联Javascript时,会发生此错误。 Chrome扩展程序抱怨这一点。
如果您尝试
,则会收到相同的错误消息<script> alert("hello world"); </script>
来自Google Chrome extension documentation
不会执行内联JavaScript。此限制禁止内联块和内联事件处理程序(例如&lt; button onclick =&#34; ...&#34;&gt;)。
这也意味着您的内联事件处理程序不起作用,您必须在popup.js脚本中动态绑定事件:
document.getElementById("the_button").addEventListener("click", function()
{
// click code here
}, false);