在完成页面加载后调用一个函数

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

<script type="text/javascript"> window.onload = function () { newInvite(); document.ag.src="b.jpg"; } </script> 

但是这个代码不能正常工作。 即使某些图像或元素正在加载,该函数也会被调用。 我想要的是调用页面加载完整的function。

这可能适合你:

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

或者如果你使用jQuery的舒适,

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

$(document).ready()在DOMContentLoaded上触发,但是这个事件并没有在浏览器中一致地被触发。 这就是为什么jQuery最有可能实现一些繁重的解决方法来支持所有的浏览器。 这将使得使用简单的Javascript来“模拟”行为变得非常困难(当然不是不可能的)。

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

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

如果你可以使用jQuery,看看加载 。 你可以设置你的函数在你的元素完成加载后运行。

例如,考虑一个简单的图像页面:

 <img src="book.png" alt="Book" id="book" /> 

事件处理程序可以绑定到图像:

 $('#book').load(function() { // Handler for .load() called. }); 

如果您需要加载当前窗口上的所有元素,则可以使用

 $(window).load(function () { // run code }); 

优秀的一个:

 document.onreadystatechange = function(){ if(document.readyState === 'complete'){ ............................ } } 

如果你想在你的html页面中使用onload事件调用一个js函数。 onload事件发生在用户代理完成加载FRAMESET中的一个窗口或所有框架时。 该属性可以与BODY和FRAMESET元素一起使用。

 <body onload="callFunction();"> .... </body> 

这样你可以处理这两种情况 – 如果页面已经加载或没有:

 document.onreadystatechange = function(){ if (document.readyState === "complete") { myFunction(); } else { window.onload = function () { myFunction(); }; }; } 

如果你不使用任何JS框架,这个项目是获得dom就绪状态的最好方法,具有跨浏览器兼容性

ded/domready/blob/master/ready.html

如果你已经在使用jQuery,你可以试试这个:

 $(window).bind("load", function() { // code here }); 

试试这个jQuery :

 $(function() { // Handler for .ready() called. }); 

我正在使用Web组件,所以适用于我:

 document.addEventListener('WebComponentsReady', function() { document.querySelector('your-element').show(); }); 

在完成页面加载设置超时后调用一个函数

 setTimeout(function() { var val = $('.GridStyle tr:nth-child(2) td:nth-child(4)').text(); for(var i, j = 0; i = ddl2.options[j]; j++) { if(i.text == val) { ddl2.selectedIndex = i.index; break; } } }, 1000); 

把你的脚本完成身体标记后…它的作品…