完成页面加载后执行函数JavaScript与 jQuery 相同:

2022-08-30 02:30:18

我使用以下代码在页面加载后执行一些语句。

 <script type="text/javascript">
    window.onload = function () { 

        newInvite();
        document.ag.src="b.jpg";
    }
</script>

但此代码无法正常工作。即使正在加载某些图像或元素,也会调用该函数。我想要的是调用页面完全加载的函数。


答案 1

这可能对您有用:

document.addEventListener('DOMContentLoaded', function() {
   // your code here
}, false);

或者如果你对jquery感到舒适,

$(document).ready(function(){
// your code
});

$(document).ready()在 DOMContentLoaded 上触发,但此事件在浏览器之间未一致地触发。这就是为什么jQuery很可能会实施一些繁重的解决方法来支持所有浏览器。这将使使用普通的Javascript“精确”模拟行为变得非常困难(当然,这并非不可能)。

正如Jeffrey Sweeney和J Torres所建议的那样,我认为在启动函数之前最好有一个函数,如下所示:setTimeout

setTimeout(function(){
 //your code here
}, 3000);

答案 2

JavaScript

document.addEventListener('readystatechange', event => { 

    // When HTML/DOM elements are ready:
    if (event.target.readyState === "interactive") {   //does same as:  ..addEventListener("DOMContentLoaded"..
        alert("hi 1");
    }

    // When window loaded ( external resources are loaded too- `css`,`src`, etc...) 
    if (event.target.readyState === "complete") {
        alert("hi 2");
    }
});

与 jQuery 相同:

$(document).ready(function() {   //same as: $(function() { 
     alert("hi 1");
});

$(window).load(function() {
     alert("hi 2");
});





注意: - 不要使用以下标记(因为它会覆盖其他同类声明):

document.onreadystatechange = ...