0

我的第一个 GC 扩展的脚本在加载为 .crx 时不起作用。我检查了调试部分,这是我的错误:

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' https://www.lolking.net/ ”。popup.html:8

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' https://www.lolking.net/ ”。popup.html:9

所以我猜错误来自 manifest.json 文件:

{
"name": "LolKing Searcher",
"version": "1.1",
"manifest_version": 2,
"description": "Search your LoL profile",
 "content_security_policy": "script-src 'self' https://www.lolking.net/; object-src 'self'",
"permissions": [
    "tabs",
    "http://*/*/"
],

 "content_scripts": [
{
  "matches": ["http://*/*/","https://*/*/"],
  "js": ["popup.js"]
}
],

 "browser_action": {
    "default_title": "LolKing Searcher",
    "default_icon": "icon.png",
    "default_popup": "popup.html"
}
}

每个建议都被很好地接受了!

4

1 回答 1

0

正如它在错误本身中所说的那样,该错误在您的popup.html文件中。html 文件中不能有任何内联代码,其中包括内联事件处理程序,如onclick="dosomething()". 将所有内联代码移动到外部文件。

例子:

popup.html

<head>
  <script src="popup.js"></script>
</head>
<body>
  <input type="text" id="userText" placeholder="Enter Summoner's name"  />
  <input type="button" id="button" value="Search"/>
</body>

popup.js

window.onload = function(){
  document.getElementById("button").addEventListener("click",check,false);
};
function check(){
  var val = document.getElementById("userText").value;
  if(val != ""){
    var url="http://www.lolking.net/search?name=" + val;
    chrome.tabs.create({url:url});
  }
  else
    alert("Please enter a name");
}

此外,您需要删除您的content scripts部分,因为您试图将弹出代码注入每个没有任何意义的页面。

于 2013-05-14T18:04:19.567 回答