Chrome显示错误为:拒绝执行内嵌脚本,因为内容安全策略
问题描述:
我正在创建图像裁剪控件的Chrome扩展。我popup.html
的代码如下:Chrome显示错误为:拒绝执行内嵌脚本,因为内容安全策略
<body>
<textarea id="widget_script" style="border:1px solid #ccc;padding:5px;width:600px" rows="5" readonly></textarea>
<script type="text/javascript">
var protocol=window.location.protocol;
var host= window.location.host;
var head=('<div id="wd_id" style="margin-bottom: 20px;"></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></\script>
<script type="text/javascript" src="'+protocol+'//'+host+'Image_crop/cropimages/img_crop_widget.js'+'"><\/script>
<script type="text/javascript">init_widget()<\/script>');
document.getElementById("widget_script").innerHTML=head;
</script>
</body>
变量协议和主机采取协议并在浏览器主机从URL。当我试图将其作为Chrome扩展程序集成时,它不起作用。当它完美的作品,它会显示以下代码的textarea:
<div id="wd_id" style="margin-bottom: 20px;"></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://localhost/cropimages/img_crop_widget.js"></script>
<script type="text/javascript">init_widget()</script>
我有事情少之类的东西,放置在外部JS文件和JS代码,并调用文件中manifest.json
调用它在我的popup.html
,但没有工作。
任何人都可以告诉我我做错了什么,或者我应该尝试使其工作吗?
在此先感谢...
答
联JavaScript将不被执行。此限制禁止内联
<script>
块和内联事件处理程序(例如<button onclick="...">
)。
您不能在您的扩展HTML如内嵌脚本:
<script>alert("I'm an inline script!");</script>
<button onclick="alert('I am an inline script, too!')">
相反,你必须把你的脚本到一个单独的文件:
<script src="somescript.js"></script>
您需要将所有的代码在外部文件中。你不能有任何内联代码。 – BeardFist 2013-04-22 15:59:01