【问题标题】:How can I run JS code from a google chrome theme如何从 google chrome 主题运行 JS 代码
【发布时间】:2022-04-08 13:57:04
【问题描述】:

Google Chrome 主题在Chrome developer docs 上定义如下:

主题是一种特殊的扩展,它改变了 浏览器看起来。主题像常规扩展一样打包,但它们 不包含 JavaScript 或 HTML 代码。

(强调我自己的)

但是我想应用某种主题,确实在我加载的页面上运行 JavaScript。我怎样才能做到这一点?我已经尝试添加

"permissions": ["<all_urls>"],
"content_scripts": [
    {
    "matches": [
        "http://*/*",
        "https://*/*"
        ],
    "js": ["content.js"],
    "run_at": "document_end"         // pay attention to this line
    }
],

到我的manifest.json 并将下面的content.js 文件放在与this answer 相同的.crx 包中作为我的清单

(function(window, chrome){
  "use strict";
  var doc = window.document;
  doc.getElementById("mv-tiles").style.opacity = "0";
}(window, chrome));

但代码无法运行。有什么解决方法吗?

【问题讨论】:

  • 那么,文档明确表示您不能,而您问我们该怎么做?
  • @ceejayoz 没有询问如何从文件中运行代码,我要求的是一个很好的解决方法,它可以实现相同的目标。我前段时间问过这个问题,并且后来使用 TamperMonkey 来运行脚本(尽管我听说在新标签页上运行脚本的能力无论如何都被淘汰了)——但我认为这不是一个很好的 解决方法,因为它涉及安装额外的软件,如果可以的话,我希望我的主题是可移植的和独立的。
  • 以防万一这个问题仍然相关,您可以看到大多数启动主题不是主题,而是扩展,因此您必须开发和扩展。

标签: javascript html google-chrome-extension google-chrome-theme


【解决方案1】:

正如其他人在 cmets 中所说的那样,不可能使用主题,而必须作为扩展发布。

这里需要考虑一个安全问题:因为主题不能包含“活动”JavaScript 代码,所以它们本质上比扩展更安全。这在对浏览器应用安全策略的大型公司中发挥作用。他们可能允许安装主题,因为它们只包含静态内容,但拒绝安装扩展。

此安全功能必须由浏览器强制执行,否则它将不再有意义,主题和扩展程序之间的区别变得无关紧要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多