这个简单的chrome扩展有什么问题?

时间:2014-10-11 22:06:49

标签: javascript jquery html google-chrome

我尝试制作一个非常简单的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"
  }
}

2 个答案:

答案 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);