2010-10-06 5 views
20

Я хочу задать вопрос о Javascript's onload.Javascript onload в HTML

Я пишу страницу JSP с кодом <%@ include file ="body.jsp". Прилагаемый body.jsp содержит:

<table onload="function()"> 

Этот должен загрузить яваскрипта функцию, но это не оказывает какого-либо влияния на этой странице. Есть onload только для использования на теге body?

ответ

38

OnLoad может быть использован только для <body>, <img>, <script>, тегов, потому что он говорит вам, когда внешний ресурс (изображение, сценарий, кадр) или вся страница (тело) был загружен

С HTML5 они также могут стрелять нагрузки событие: с <link>, <style>, <input type=image>, <object>
Поддержка они могут все еще быть хитом или пропустить хотя (e.g. older Android browsers)

+0

и '' элементы. – Andrey

2

«onLoad» может использоваться для тегов body- и frameset. Чтобы увидеть какие-то действия, вы можете использовать:

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

Как другие ребята уже заявили событие OnLoad не будет срабатывать на столе. То, что вы можете сделать, это привязать обработчик onLoad к элементу body (который затем будет запускаться при загрузке страницы) и манипулировать таблицей, например, присваивая идентификатор таблице.

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

Вы используете javascript framework?

13

Почему бы просто не включить его через <script tag>?

Внутри вашего .jsp файла

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

Самый простой способ я нашел, чтобы использовать внешний файл Javascript и JQuery.

// 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 
}); 

Это фрагмент кода из того, над которым я работал. Переменная объявляется до запуска кода (он создает веб-сокет). Затем есть селектор документов jQuery ($), который запускается при загрузке и вызывает функцию init для изменения моего html. Я использую его для вызова анонимной функции, которая запускается сразу.