HTML中的Javascript onload

时间:2010-10-06 07:13:38

标签: javascript html jsp

我想问一个关于Javascript onload的问题。

我正在编写一个代码为<%@ include file ="body.jsp"的JSP页面。包含的body.jsp包含:

<table onload="function()">

应该加载javascript函数,但它似乎对页面没有任何影响。 onload仅适用于body代码吗?

6 个答案:

答案 0 :(得分:39)

Onload只能用于<body><img><script><iframe>标记,因为它会告诉您何时外部资源(图像,脚本,框架)或整个页面(正文)已加载

由于 HTML5 ,这些也可以触发加载事件:<link><style><input type=image><object>
尽管如此(e.g. older Android browsers

,对这些内容的支持仍然可能会受到影响

答案 1 :(得分:14)

为什么不通过<script tag>包含它?

在.jsp文件中

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

答案 2 :(得分:3)

正如其他人已经声明的那样,onLoad事件不会在桌面上发射。您可以做的是将onLoad-handler附加到body元素(然后在加载页面时将触发)并通过例如为表分配id来操作表。

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

你使用的是一些javascript框架吗?

答案 3 :(得分:2)

“onLoad”可用于body-frameset-frameset-tag。 要查看您可能使用的某些操作:

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

答案 4 :(得分: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
});

这是我正在处理的代码片段。变量在代码运行之前声明(它创建一个Web套接字)。 然后是jquery文档选择器($),它在加载时运行并调用init函数来修改我的html。我用它来调用一个立即运行的匿名函数。

答案 5 :(得分:0)

您可以在带有代码的表后立即添加一个<script>标签。一旦到达script标记,就意味着它上面的表元素的DOM已经加载,现在可以在它下面的脚本中访问。

注意:以下内容不适用于该问题,但会给出其他答案。

我建议使用javascript中的addEventListener函数添加事件。这样可以确保您不会被任何想听事件的人覆盖,也不会被其他人覆盖。

示例

var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('load', function(event){ console.log("iframe Loaded", event); })