Javascript抛出:拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:"script-src'self'

Nir*_*Nir 20 javascript google-chrome-extension

我是google chrome extention开发的新手.我正在尝试开发一个简单的扩展,我不断收到上面的错误.

我的清单:

{
  "name": "set my favourties",
  "description" : "just another super awesome plugin",
  "version" : "0.1", 
    "background": {
    "page": "backround.html"
  },

   "manifest_version": 2,
    "content_security_policy": "script-src 'self' https://www.google.com; object-src 'self'",

   "browser_action" :{
     "popup" : "popup.html",
     "default_icon" : "icon.gif"
     },

     "permissions" : ["notifications"]
 }
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<html>
<head>
<script src = "backround.js">

</script>
</head>
<body onload = "loadHandler()">

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

和js:

  function loadHandler(){
  window.webkitNotifications.createNotification("icon.gif","Plugin Loaded","it was loaded").show();

   }
Run Code Online (Sandbox Code Playgroud)

提前致谢

尼尔

Que*_*tin 17

如果这不是Chrome扩展程序,您可以添加'unsafe-inline'到可加载脚本的可接受位置列表中, 但你应该避免使用内联事件处理程序.

替换(在HTML中):

onload = "loadHandler()"
Run Code Online (Sandbox Code Playgroud)

with(在脚本中):

window.addEventListener('load', loadHandler);
Run Code Online (Sandbox Code Playgroud)

  • `unsafe-inline`在Chrome扩展程序中不起作用.将事件侦听器移动到单独的脚本文件是唯一的解决方案. (3认同)