玩笑过后

导航

readystatechange事件

IE为DOM文档中的某些部分readystatechange事件。

这个事件的目的是提供与文档或元素的加载状态有关的信息,但是这个事件的行为有时候也很难预测。

支持readystatechange事件的每一个对象都有一个readyState属:

uninitialized(未初始化):对象存在但尚未初始化。

loading(正在加载):对象正在加载数据

loaded(加载完毕):对象加载数据完成

interactive(交互):可以操作对象了,但还没有完全加载

complete(完成):对象已经加载完毕。

这些状态看起来很直观,但并非所有对象都会经历readyState的这几个阶段。

EventUtil.addHandler(window, "load", function(){
        
            //create a new <script/> element.
            var script = document.createElement("script");
            EventUtil.addHandler(script, "readystatechange", function(event){
                event = EventUtil.getEvent(event);
                var target = EventUtil.getTarget(event);
                if (target.readyState == "loaded" || target.readyState == "complete"){
                    EventUtil.removeHandler(target, "readystatechange", arguments.callee);
                    alert("Script Loaded");
                }
            });
            script.src = "example.js";
            document.body.appendChild(script);
            
            //create a new <link/> element
            var link = document.createElement("link");
            link.type = "text/css";
            link.rel= "stylesheet";
            
            EventUtil.addHandler(link, "readystatechange", function(event){
                event = EventUtil.getEvent(event);
                var target = EventUtil.getTarget(event);
                if (target.readyState == "loaded" || target.readyState == "complete"){
                    EventUtil.removeHandler(target, "readystatechange", arguments.callee);
                    alert("CSS Loaded");
                }
            });
            link.href = "example.css";
            document.getElementsByTagName("head")[0].appendChild(link);
            
        });

 

posted on 2018-10-08 15:57  玩笑过后  阅读(2220)  评论(0编辑  收藏  举报