加载为.crx时,我的第一个GC扩展程序的脚本不起作用。我检查了调试部分,这是我的错误:
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“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"
}
}
每个建议都被广泛接受!
答案 0 :(得分: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
部分,因为您尝试将弹出代码注入到每个页面中,这些内容没有任何意义。