首页 > web前端 > css教程 > 如何在 Chrome 扩展的 JavaScript 中将 CSS 样式表作为字符串注入?

如何在 Chrome 扩展的 JavaScript 中将 CSS 样式表作为字符串注入?

DDD
发布: 2024-11-02 20:58:02
原创
1015 人浏览过

How to Inject CSS Stylesheets as Strings in JavaScript for Chrome Extensions?

在 JavaScript 中将 CSS 样式表作为字符串注入

要将自定义 CSS 样式添加到 Chrome 扩展程序的界面,我们面临着 document.stylesheets 的挑战。以下是如何使用 JavaScript 字符串注入完整的样式表:

创建并附加样式元素:

最简单的解决方案是创建一个

<code class="javascript">const style = document.createElement('style');
style.textContent = 'body { color: red; }';
document.head.append(style);</code>
登录后复制

多个 CSS 注入:

如果需要要在一次传递中注入多种样式,您可以将上述代码包装在实用函数中:

<code class="javascript">function addStyle(styleString) {
  const style = document.createElement('style');
  style.textContent = styleString;
  document.head.append(style);
}</code>
登录后复制

可替换 CSS 注入:

或者,您可以修改函数覆盖以前的 CSS 注入:

<code class="javascript">const addStyle = (() => {
  const style = document.createElement('style');
  document.head.append(style);
  return (styleString) => (style.textContent = styleString);
})();</code>
登录后复制

IE 限制:

请注意,IE9 及以下版本限制为 32 个样式表,而 IE10 允许 4095 个。请谨慎在旧版浏览器中使用不可替换的代码时。

现代化答案:

出于安全原因,最近更新已将 .innerHTML 替换为 .textContent。更新后的代码:

<code class="javascript">const style = document.createElement('style');
style.textContent = styleString;
document.head.append(style);</code>
登录后复制

以上是如何在 Chrome 扩展的 JavaScript 中将 CSS 样式表作为字符串注入?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板