


How to Inject CSS Stylesheets as Strings in JavaScript for Chrome Extensions?
Injecting CSS Stylesheets as Strings in JavaScript
To add custom CSS styles to a Chrome extension's interface, we face challenges with document.stylesheets. Here's how to inject complete stylesheets using JavaScript strings:
Creating and Appending a Style Element:
The simplest solution is to create a
<code class="javascript">const style = document.createElement('style'); style.textContent = 'body { color: red; }'; document.head.append(style);</code>
Multiple CSS Injections:
If you want to inject multiple styles into one pass, you can wrap the above code in a utility function:
<code class="javascript">function addStyle(styleString) { const style = document.createElement('style'); style.textContent = styleString; document.head.append(style); }</code>
Replaceable CSS Injections:
Alternatively, you can modify the function to overwrite previous CSS injections:
<code class="javascript">const addStyle = (() => { const style = document.createElement('style'); document.head.append(style); return (styleString) => (style.textContent = styleString); })();</code>
IE Limitations:
Note that IE9 and below have a limit of 32 stylesheets, while IE10 allows 4095. Be cautious when using the non-replaceable code for older browsers.
Modernizing the Answer:
Recent updates have replaced .innerHTML with .textContent for security reasons. The updated code:
<code class="javascript">const style = document.createElement('style'); style.textContent = styleString; document.head.append(style);</code>
The above is the detailed content of How to Inject CSS Stylesheets as Strings in JavaScript for Chrome Extensions?. For more information, please follow other related articles on the PHP Chinese website!

We make use of state to keep track of application data. States change as users interact with an application. When this happens, we need to update the state

It’s the first thing your eyes look for when you’re switching tabs.

Netlify has their own docs for Custom Domains, so if you're looking for horse's mouth technical docs on this stuff, that should be treated as the source of

Yonatan Doron wrote a post on Medium not long ago called "Art of Code — Why you should write more Pseudo Code." Love that title, as a fan of pseudo code

We live in an era of webpack and npm scripts. Good or bad, they took the lead for bundling and task running, along with bits of Rollup, JSPM and Gulp. But

I like the term Front-End Developer. It's encapsulates the nature of your job if your concerns are:

In September 2018, I was just a few months into my journey of learning web development. As I'm sure is the case with many new developers, it was a big task

The ECMAScript standard has been updated yet again with the addition of new features in ES2019. Now officially available in node, Chrome, Firefox, and Safari


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Chinese version
Chinese version, very easy to use

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool