5.理解ReadyState document.readyState帮助你了解页面加载和解析过程中,页面所处的当前状态。需要记住的一点是,浏览器当遇到script元素时会立即执行,除非你使用defer属性延时脚本的执行。readyState有三个值代表不同的状态。 loading:浏览器正在加载和执行document; interactive:docuent已经完成解析,但是浏览器正在加载其他外部资源(media,图片等); complete:页面解析完成,外部资源在家完毕。 在浏览器整个加载和解析的过程中,readyState的值会从loading,interactive和complete逐个改变。当结合readystatechange事件(readyState状态改变时触发)使用,readyState会变得相当有价值。
复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <title>Example</title> <meta content="Adam Freeman" /> <meta content="A simple example" /> <script> document.onreadystatechange = function () { if (document.readyState == "interactive") { document.getElementById("pressme").onclick = function () { document.getElementById("results").innerHTML = "Button Pressed"; } } } </script> </head> <body> <button> Press Me</button> <pre></pre> </body> </html>
上面的代码使用readystatechange事件实现了延时执行的效果,只有当页面上整个页面解析接触之后readystate的值才会变成interactive,这时再为pressme按钮绑定click事件。这样操作可以确保所需要的html元素都存在,防止错误发生。 6.获取dom属性实现的信息 document.implementation属性帮助你了解浏览器对dom属性的实现情况。该属性返回DOMImplementation对象,对象包含hasFeature方法,你可以通过该方法了解浏览器对某属性的实现情况。
复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <title>Example</title> <meta content="Adam Freeman" /> <meta content="A simple example" /> </head> <body> <script> var features = ["Core", "HTML", "CSS", "Selectors-API"]; var levels = ["1.0", "2.0", "3.0"]; document.writeln("<pre>"); for (var i = 0; i < features.length; i++) { document.writeln("Checking for feature: " + features[i]); for (var j = 0; j < levels.length; j++) { document.write(features[i] + " Level " + levels[j] + ": "); document.writeln(document.implementation.hasFeature(features[i], levels[j])); } } document.write("</pre>") </script> </body> </html>
效果: (编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|