在Chrome扩展开发中,直接在popup.html内联编写JS事件处理代码会触发Content Security Policy错误。解决方法是将JavaScript代码移至外部文件,并通过script标签引用该外部JS文件,从而避免CSP对内联脚本的阻止。
Chrome扩展CSP内联脚本报错问题
问题描述:
在开发Chrome扩展的过程中,若需要在popup.html页面中执行JavaScript代码,直接通过内联方式动态绑定JS事件会引发报错。
浏览器控制台通常会提示如下错误信息:Refused to execute inline script because it violates the following Content Security Policy directive: “script-src ‘self' chrome-extension-resource:”..
通过外部JS文件解决CSP限制
解决办法:
正确的做法是在popup.html中引用一个外部的JavaScript文件,并在该外部文件中动态绑定JS事件。
// 此处为代码结束标记,实际开发中需确保逻辑完整
具体实现方式如下:
<script type="text/javascript" charset="utf-8" src='test.js'></script> 在外部文件test.js中编写如下代码:
// 此处为代码结束标记,实际开发中需确保逻辑完整
具体代码实现如下:
var listbox = document.getElementById("showlist");
listbox.onclick=function(){
document.getElementById("player_sidebar").style.width = 100;
}