Подтвердить что ты не робот

Как отсрочить вызов функции javascript?

Я новичок в JavaScript.

Я хотел бы вызвать функцию JavaScript/jQuery после загрузки страницы на странице aspx.

Я попытался использовать <form onload="function()"> и window.load = function(){}, но JavaScript все еще запускается до того, как часть содержимого будет полностью загружена.

Можно ли вызывать во время Page_PreRender на странице aspx, а не в коде, так что я могу задержать функцию JavaScript?

Я попробовал setTimeout("function()",5000) решить проблему.

Однако setTimeout() похоже, не совместим с каким-либо браузером, например: вызвал цикл в Google Chrome.

4b9b3361

Ответ 1

setTimeout совместим со всеми браузерами с 1996 года. Вы должны избегать оценки "functionName()" и вместо этого:

setTimeout(functionName,5000)

UPDATE: Если вы ожидаете, что переменная будет передана функции, а в тайм-ауте - нет, то вам нужно сделать это:

setTimeout(function() { functionName() },5000)

потому что setTimeout передает идентификатор тайм-аута функции, если он вызывается как в первом примере.

Однако вы неправильно вызываете onload, поэтому вам нужно сделать следующее:

window.onload=function() {
  // your stuff
}

или, поскольку вы используете jQuery, это:

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

или только это:

$(function() {
    // your stuff
});

Ответ 2

Если вы хотите быть на 100% уверенным, что при загрузке страницы ACTUALLY используйте:

$(window).load(function(){
   //After EVERYTHING loads, including images.
})

Другое решение onload работает, но оно загружается, когда DOM готов, но не тогда, когда окно действительно завершено.

Ответ 3

Если вы собираетесь использовать jQuery, предпочтительнее присоединить событие к событию готовности документа, используя одно из следующих действий:

$(document).ready(callback);

или

$(document).ready(function () { /* do stuff */ });

или

$(callback);

или

$(function () { /* do stuff */ });

Ответ 4

$(document).ready(function(){ 

   //Code goes here

});

или старый стиль

<body onload="myFunction()">

Ответ 5

Лучше всего использовать фреймворк, например jQuery.
В jQuery вы можете определить такую ​​функцию:

$(document).ready(function() {

});

Таким образом, он будет вызываться, когда DOM будет полностью загружен.

Полную документацию о функции ready() можно найти здесь.