2017-06-24 6 views
-1

Ich versuche eine Funktion auszuführen, sobald der Benutzer auf der Seite landet. Ich habe folgenden Kopfabschnitt:Warum funktioniert meine Funktion nicht beim Laden der Seite?

<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

    <link rel="stylesheet" type="text/css" href="Resources/css/normalize.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/ionicons.min.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/animate.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/style.css"> 
    <link rel="stylesheet" href="https://www.w3schools.com/lib/w3.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

    <script type="text/javascript"> 
     function sayOK() { 
      alert('ok'); 
     } 
     window.onload = sayOK; 
    </script> 

</head> 

Warum sayOK() nicht ausführen?

Antwort

0

Ihr Beispielcode lief beim Testen einwandfrei. Sie können versuchen, das Skript in die Fußzeile zu verschieben, direkt vor dem schließenden Body-Tag.

jQuery bietet einen guten Onload-Mechanismus, und wenn Sie browserübergreifende Zuverlässigkeit wünschen, wäre das der Ausgangspunkt. Erfinde das Rad nicht neu.

https://learn.jquery.com/using-jquery-core/document-ready/

+0

Warum die Nach-unten-Abstimmung? Er lädt bereits jQuery in sein Sample, also gibt es keinen Grund, es nicht zu benutzen. Das Erstellen von benutzerdefinierten Funktionen zur Handhabung von Onload ist überflüssig, wenn er bereits Zugriff auf eine hat und die Wartung im weiteren Verlauf erschwert. – illmortem

+0

Das hat funktioniert. Ich habe das Skript direkt vor dem Schließen des Körpers verschoben. –

+0

Ehrfürchtig, froh, dass es geholfen hat - oft ist die einfachste Antwort die beste :) – illmortem

-1

Es funktioniert. Versuchen Sie, eine separate Datei zu erstellen, z. B. ok.html, und öffnen Sie sie in einem beliebigen Browser. Es sollte die Nachricht anzeigen.

0

Dies ist ein tragbarer Weg, um Ihren Code ausgeführt wird, sobald die Seite geladen wird:

function documentReady (cb) { 
    if (document.readyState !== 'loading') { 
    cb(); 
    } else { 
    document.addEventListener('DOMContentLoaded', cb); 
    } 
} 

documentReady(function() { 
    // YOUR CODE GOES HERE 
}); 
Verwandte Themen