Chrome扩展程序使用内联JS加载本地页面

时间:2016-07-20 03:18:44

标签: javascript google-chrome-extension

我已经创建了一个chrome扩展程序并使用Revaxarts的一个名为Documenter的在线工具构建帮助文档(例如:http://documenterdocs.revaxarts.com/doc_ca71f4007fd2ed01997a40c61d345e3f/

此帮助文档包含有关扩展的所有说明:它是什么,它是如何工作的等等。我想与我的扩展程序(本地文件)共享此帮助文档,并通过"帮助指南"弹出菜单上的按钮(在新选项卡/窗口中打开)。

问题是该工具生成的HTML文件在HTML <head></html>中使用了一些内联javascript,因为我是在编程的早期阶段,这是我第一次尝试使用chrome扩展,我似乎无法找到一种方法来完成这项工作,甚至根本无法获得信息。

帮助指南文件结构如下:

rootfolder/asssets/
roofolder/index.html

/assets/有CSS,JS和Imgs文件。

我读了一些External content,但我不太确定如何,即使它可以适应我的需求。也许使用沙箱?我对此并不了解。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,inline scripts will not be executed

要放宽此政策,请参阅Relax default policy

  

直到 Chrome 45 ,才有无机制,以放宽对执行内联JavaScript的限制。特别是,设置一个包含&#39; unsafe-inline&#39;没有效果。

     

Chrome 46 开始,可以通过在策略中指定源代码的base64编码哈希来将内联脚本列入白名单。此哈希必须以使用的哈希算法(sha256,sha384或sha512)作为前缀。有关示例,请参阅 Hash usage for elements

但是,我建议您将内联脚本解压缩到外部脚本,例如,将onclick=xxx等内联侦听器更改为Element.addEventListener('click')