Giter Site home page Giter Site logo

Comments (6)

Macleykun avatar Macleykun commented on July 29, 2024 1

Here is a variant if you have multiple styles

    <script nonce>
        Array.prototype.slice.call(document.querySelectorAll("[data-loadcss]")).map(function (e) {
            e.addEventListener("load", function() {
                this.media = "all"
            });
        })
    </script>

or shorter es6 syntax

    <script nonce>
        [...document.querySelectorAll("[data-loadcss]")].map((e) => e.addEventListener("load", (e) => e.target.media = "all"));
    </script>

Sorry for necromancing an old issue with a (unrelated) question.
But using the es6/other variant like just including it to the bottom will async/inline onload but not cause csp to break?
Like no adjustments needed? Just chug it to the bottom? Or should it be placed in the header?

Again, sorry for reviving an issue with a unrelated (noob) question. I do look forward to your reply!

I've tried to implement it here: https://github.com/TheVoxSiren/voxsiren.net/blob/main/index.html#L7
But i feel like it's not really doing anything?

from loadcss.

scottjehl avatar scottjehl commented on July 29, 2024

Looks good! Thanks for noting. It should work the same yes, but I'm not sure if there's a possibility of the CSS loading from cache before the onload event is bound. It does make me wonder if a timeout might be more dependable, since it's not onload in particular that needs to be used so much as some event that happens after the CSS file is requested.

Worth testing.

Anyway, I'd love a readme edit if you'd like to. Otherwise we'll aim to get to it when we can.

from loadcss.

gr8bit avatar gr8bit commented on July 29, 2024

Nice find & workaround @petervtzand ! One question though, why don't you "activate" the stylesheet in the link by setting the rel-attribute to "stylesheet" rather than changing the media attribute?

from loadcss.

petervtzand avatar petervtzand commented on July 29, 2024

I've used this example of the filament group: https://www.filamentgroup.com/lab/load-css-simpler/. This seems to be their new and simpler approach.

from loadcss.

lubomirblazekcz avatar lubomirblazekcz commented on July 29, 2024

Here is a variant if you have multiple styles

    <script nonce>
        Array.prototype.slice.call(document.querySelectorAll("[data-loadcss]")).map(function (e) {
            e.addEventListener("load", function() {
                this.media = "all"
            });
        })
    </script>

or shorter es6 syntax

    <script nonce>
        [...document.querySelectorAll("[data-loadcss]")].map((e) => e.addEventListener("load", (e) => e.target.media = "all"));
    </script>

from loadcss.

lubomirblazekcz avatar lubomirblazekcz commented on July 29, 2024

Btw, I've noticed a weird bug where event listener did not trigger in Edge 18. So I've had to add this workaround. Works with onchange though, weird.

            if (navigator.userAgent.match("Edge/")) {
                e.media = "all";
            }

from loadcss.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.