V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
HUZHUANGZHUANG
V2EX  ›  问与答

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

  •  
  •   HUZHUANGZHUANG · Jul 8, 2023 · 1003 views
    This topic created in 1027 days ago, the information mentioned may be changed or developed.
    我在写一个谷歌插件,插件显示的内容通过 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 代码。这就是为什么你会看到这个错误。

    我想避免这个难题,求大佬指点一下,感激不尽
    4 replies    2023-07-09 07:04:19 +08:00
    krapnik
        1
    krapnik  
       Jul 8, 2023
    可以在 manifest.json 设置 content_security_policy ,参考如下:
    "content_security_policy": "script-src 'self' 'unsafe-eval' http://localhost:*; object-src 'self'"
    HUZHUANGZHUANG
        2
    HUZHUANGZHUANG  
    OP
       Jul 8, 2023
    @krapnik 感谢回复,我去试一下,这个是否适合最新的 MV3 语法?
    krapnik
        3
    krapnik  
       Jul 8, 2023
    HUZHUANGZHUANG
        4
    HUZHUANGZHUANG  
    OP
       Jul 9, 2023
    请问一下有没有大佬了解这个问题,感觉现在的 MV3 规定,完全让这个问题无法解决,不知道如何实现了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   990 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 18:21 · PVG 02:21 · LAX 11:21 · JFK 14:21
    ♥ Do have faith in what you're doing.