it-swarm.com.de

Wie kann der Aufruf der Javascript-Funktion verzögert werden?

Ich bin neu bei JavaScript.

Ich möchte die JavaScript/jQuery-Funktion nach dem Laden der Seite in der aspx-Seite aufrufen.

Ich habe versucht, <form onload="function()"> und window.load = function(){} zu verwenden, aber das JavaScript wird immer noch ausgelöst, bevor einige Inhalte vollständig geladen werden. 

Ist es möglich, während Page_PreRender in der aspx-Seite und nicht im Code hinterher aufzurufen, damit ich die JavaScript-Funktion verzögern kann?

Ich habe versucht, setTimeout("function()",5000), um das Problem zu lösen.

setTimeout() scheint jedoch nicht mit einem Browser kompatibel zu sein, z. B. verursacht in Google Chrome eine Schleife.

29
sams5817

setTimeout ist mit allen Browsern seit 1996 kompatibel. Sie sollten die Bewertung von "functionName ()" vermeiden und stattdessen Folgendes tun:

setTimeout(functionName,5000)

UPDATE: Wenn Sie anfangs erwarten, dass eine Variable an die Funktion übergeben wird, und keine während des Timeouts, müssen Sie Folgendes tun:

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

weil setTimeout die Timeout-ID an die Funktion übergeben wird, wenn sie wie im ersten Beispiel aufgerufen wird.

Sie rufen jedoch die onload falsch auf, daher müssen Sie entweder Folgendes tun:

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

oder, da Sie jQuery verwenden, Folgendes:

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

oder nur das:

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

Wenn Sie zu 100% sicher sein möchten, dass die Seite ACTUALLY geladen wird, verwenden Sie:

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

Die Lösung des anderen, onload, funktioniert, wird jedoch geladen, sobald das DOM fertig ist, aber nicht, wenn das Fenster tatsächlich fertig geladen ist.

5
Oscar Godson

Wenn Sie jQuery verwenden, ist es ratsam, ein Ereignis an das document ready-Ereignis anzuhängen, indem Sie eine der folgenden Methoden verwenden:

$(document).ready(callback);

oder

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

oder

$(callback);

oder

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

   //Code goes here

});

oder alter Stil

<body onload="myFunction()">
1
MadBender

Am besten verwenden Sie ein Framework wie jQuery .
In jQuery können Sie eine Funktion wie folgt definieren:

$(document).ready(function() {

});

Auf diese Weise wird es aufgerufen, wenn das DOM vollständig geladen ist.

Eine vollständige Dokumentation der ready () - Funktion finden Sie hier .

0
Karsten