谷歌插件中如何使用 html 模板进行数据动态填充?

查看 57|回复 3
作者:HUZHUANGZHUANG   
我在写一个谷歌插件,插件显示的内容通过 iframe 加载一个 html.不同网站显示的数据不一样,所以我想动态加载
使用 iframe.attr("srcdoc", newHtmlDocument) 虽然可以实现效果,但是 F12 进行查看,看起来不够优雅
使用模板库例如 Handlebars 通过 html 模板加载数据(已经换了好几个模板库了),会一直提示类似下面这个问题:
selectorgadget_combined_dev.js:15787 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules' http://localhost:* http://127.0.0.1:*".
GPT4 说是:
这个问题是由于 Chrome 扩展的 Content Security Policy (CSP) 导致的。为了提高安全性,Chrome 扩展的 CSP 默认禁止使用 eval()或 new function 和类似的方法来执行字符串作为 JavaScript 代码。这就是为什么你会看到这个错误。
我想避免这个难题,求大佬指点一下,感激不尽

HTML, 模板, 插件, CSP

krapnik   
可以在 manifest.json 设置 content_security_policy ,参考如下:
"content_security_policy": "script-src 'self' 'unsafe-eval' http://localhost:*; object-src 'self'"
HUZHUANGZHUANG
OP
  
@krapnik 感谢回复,我去试一下,这个是否适合最新的 MV3 语法?
krapnik   
mv3 看这里,格式有点不一样=》 https://developer.chrome.com/docs/extensions/mv3/manifest/content_security_policy/
您需要登录后才可以回帖 登录 | 立即注册

返回顶部