我是javascript的新手。我想知道以下代码是否是$(document).ready(init)
的有效实现
<html>
<head>
<script type="text/javascript">
function documentReady(){
while(document.readyState != "interactive"){
//do nothing
}
init();
}
function init(){
}
</script>
</head>
<body>
<!-- other html elements -->
<script> documentReady(); </script>
</body>
</html>
我完全理解以下代码是正确的实现...
document.onreadystatechange = function () {
if (document.readyState == "interactive") {
init();
}
}
答案 0 :(得分:0)
没有。简单地测试它是一个微不足道的演示,将证明它不是。它将浏览器锁定在无限while
循环中,阻止所有进一步的渲染并阻止文档进入 ready 状态。
答案 1 :(得分:-1)
有几个。让我为你做一个快速的。
var onDomLoaded = function() {
console.log( "DOM is ready" );
}
document.addEventListener( 'DOMContentLoaded', onDomLoaded, false );
这就是jQuery(本质上)所做的。如果这个失败,会有相当多的后备。
我测试了它,似乎没有正常工作(甚至工作,就此而言)。