js如何判断css加载成功 10

整个html页面是通过ajax下载下来的,导致页面上写入的linkcss文件被当做是代码而不是一个代码载入了,因此css还没有加载完就开始渲染dom节点,会出现进入页面的... 整个html页面是通过ajax下载下来的,导致页面上写入的link css文件被当做是代码而不是一个代码载入了,因此css还没有加载完就开始渲染dom节点,会出现进入页面的时候一开始布局是乱掉的,等css加载完成才会呈现正确的布局,我应该如何判断css加载成功了再开始渲染dom节点,求助,在线等。
导致页面上写入的link css文件被当做是代码而不是一个文件载入,上面写错了,不知道怎么编辑,这里修正一下
展开
 我来答
805083
2014-09-15 · TA获得超过789个赞
知道小有建树答主
回答量:174
采纳率:92%
帮助的人:79.6万
展开全部
你可以用ajax载入css文件的内容,在onload事件中把css写入到html的style标签里面,这样就可以把样式注入进去了,然后再注入节点信息就能正常渲染了。
追问
window.onload?..你的qq多少啊,能不能具体请教一下,我纠结这个问题两天了
追答

ajax的onload啊,你之前的html是怎么知道载入成功的?无论你ajax采用的什么框架,使用的都是xhr,那就会有onload事件啊,比如jquery的:

$.ajax({
    url:"./css.css",
    type:"get",
    success:function(data){
        $("head").append("<style>"+data+"</style>");
    }
});
// 原始js
var xhr = new XMLHttpRequest();
var stateChangeHandle=function(){
    if (_t.xhr.readyState == 4) {
        var result="";
        if ((_t.xhr.status >= 200 && _t.xhr.status < 300) || _t.xhr.status == 304) {
            result = _t.xhr.responseText;
            document.getElementByTagName('head')[0].innerHTML + "<style>"+data+"</style>";
        }
        xhr=null;
    }
};
xhr.onload = stateChangeHandle;
xhr.open('GET','./css.css',true);
xhr.send();
brian_netmad
推荐于2016-02-21
知道答主
回答量:18
采纳率:0%
帮助的人:4.6万
展开全部
那你在 document.ready 状态下在去拉取ajax的html页面,这样就不会出现css没加载完就去请求模板数据;
如果你采用jquery
$(document).ready(function() { //网页就绪
$.getJSON('', {}, function(rep) {
});
});
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式