2010-10-06 8 views
20

Ich möchte eine Frage über die Javascript onload stellen. Ich schreibe eine JSP-Seite mit dem Code <%@ include file ="body.jsp". Die im Lieferumfang enthaltene body.jsp enthält:Javascript ontload in HTML

<table onload="function()"> 

Diese sollte die JavaScript-Funktion laden, aber es scheint nicht auf der Seite um einen Effekt zu haben. Ist onload nur auf dem Tag body verwendbar?

Antwort

38

Onload kann nur für <body>, <img> verwendet werden, <script>, Tags, weil es Ihnen sagt, wenn eine externe Ressource (Bild, Schrift, Rahmen) oder die ganze Seite (Körper) hat

Seit geladen HTML5 können diese auch eine Last Ereignis ausgelöst: <link>, <style>, <input type=image>, <object>
Unterstützung für diese immer noch einen Hit oder verpassen, obwohl sein kann (e.g. older Android browsers)

+0

und '' Elemente. – Andrey

2

"onLoad" kann für Body- und Frameset-Tags verwendet werden. Um eine Aktion sehen Sie verwenden:

<body onload="function(){alert('This is an action!')}"> 
3

Wie die anderen Jungs schon die onLoad Ereignis angegeben wird nicht auf einem Tisch schießen. Sie können den onLoad-Handler an das body-Element anhängen (das dann beim Laden der Seite ausgelöst wird) und die Tabelle bearbeiten, indem Sie beispielsweise der Tabelle eine ID zuweisen.

<body onload="function() { var table = document.getElementById("table-id"); ... }"> 
    <table id="table-id"></table> 
</body> 

Verwenden Sie ein Javascript-Framework?

13

Warum nicht einfach über eine <script tag>?

In Ihrem .jsp Datei

<script> 
    window.onload = function() { 
     alert("Hello!"); 
    } 
    // or to execute some function 
    window.onload = myFunction; //notice no parenthesis 
</script> 
0

Der einfachste Weg, ich finde, ist eine externe Javascript-Datei und Jquery zu verwenden.

// Variables and functions you want to declare 
var socket = io.connect(); 
// ..... 

// Function you want to run on load 
$(function() { 
    $('#submit').click(function() {addUser();}); 
    // ... any other functions you want to run on load 
}); 

Dies ist ein Code-Schnipsel von etwas, an dem ich arbeitete. Die Variable wird deklariert, bevor der Code ausgeführt wird (Er erstellt einen Web-Socket). Dann gibt es die jquery Dokumentselektor ($), die beim Laden und ruft die Init-Funktion, um meine HTML zu ändern. Ich benutze es, um eine anonyme Funktion aufzurufen, die sofort ausgeführt wird.