CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何确定CSS是否加载?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何断言页面的CSS已成功加载并在WaTin 2.1中应用其样式?

解决方法

做了一些研究和写作我的回答后,我偶然发现了 this link,它解释了你需要了解的关于CSS的一切,当它被加载,以及如何检查它.

提供的链接很好地解释了这一点,实际上我添加了一些引用来作为参.
如果你好奇,我的答案将是#2,而#4的变体.

When is a stylesheet really loaded?

就这样,让我们​​看看我们在这里.

// my callBACk function 
// which relies on CSS being loaded function
CSSDone() {
    alert('zOMG,CSS is done');
};

// load me some stylesheet 
var url = "http://tools.w3clubs.com/pagr/1.sleep-1.css",head = document.getElementsByTagName('head')[0],link = document.createElement('link');

link.type = "text/css"; 
link.rel = "stylesheet";
link.href = url;

// MAGIC 
// call CSSDone() when CSS arrives
head.appendChild(link);

魔法部分的选项,从漂亮而容易到可笑的排序

>听link.onload
>听link.addEventListener(‘load’)
>听link.onreadystatechange
> setTimeout并检查document.styleSheets中的更改
> setTimeout,并检查您创建的特定元素的样式的变化,但使用新的CSS样式

第五个选项太疯狂了,假设你控制了CSS的内容,所以忘记了.此外,它会在超时时检查当前样式,这意味着它将刷新回流队列,并且可能很慢. CSS到达越慢,回流越多.所以,真的,忘了它.

那么如何实现魔法?

// MAGIC 

// #1   
link.onload = function () {
    CSSDone('onload listener');
};   

// #2   
if (link.addEventListener) {
    link.addEventListener('load',function() {
        CSSDone("DOM's load event");
    },falsE);   
};   

// #3   
link.onreadystatechange = function() {
    var state = link.readyState;
    if (state === 'loaded' || state === 'complete') {
        link.onreadystatechange = null;
        CSSDone("onreadystatechange");
    }   
};

// #4   
var cssnum = document.styleSheets.length;
var ti = seTinterval(function() {
    if (document.styleSheets.length > cssnum) {
        // needs more work when you load a bunch of CSS files quickly
        // e.g. loop from cssnum to the new length,looking
        // for the document.styleSheets[n].href === url
        // ...

        // FF changes the length prematurely :(
        CSSDone('listening to styleSheets.length change');
        clearInterval(ti);
    }   
},10);

// MAGIC ends

大佬总结

以上是大佬教程为你收集整理的如何确定CSS是否加载?全部内容,希望文章能够帮你解决如何确定CSS是否加载?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。