我想问一个关于Javascript的onload
的问题。
我正在编写一个包含代码<%@ include file ="body.jsp"
的JSP页面。 包含的body.jsp
内容如下:
<table onload="function()">
这个应该可以加载Javascript函数,但它似乎对页面没有任何影响。 onload
只能在body
标签上使用吗?
我想问一个关于Javascript的onload
的问题。
我正在编写一个包含代码<%@ include file ="body.jsp"
的JSP页面。 包含的body.jsp
内容如下:
<table onload="function()">
这个应该可以加载Javascript函数,但它似乎对页面没有任何影响。 onload
只能在body
标签上使用吗?
Onload只能用于<body>
,<img>
,<script>
和<iframe>
标签上,因为它会告诉你外部资源(图像、脚本、框架)或整个页面(正文)何时加载完成。
自从HTML5出现以来,<link>
,<style>
,<input type=image>
和<object>
也可以触发load事件。虽然支持这些标签的浏览器可能会有所不同(例如旧版Android浏览器,详见此处)。
为什么不直接通过 <script>
标签引入它呢?
在你的 .jsp 文件中
<script>
window.onload = function() {
alert("Hello!");
}
// or to execute some function
window.onload = myFunction; //notice no parenthesis
</script>
正如其他人所述,onLoad事件不会在表格上触发。你可以将onLoad处理程序附加到body元素(当页面加载时将触发它),并通过为表格分配ID来操作表格。
<body onload="function() { var table = document.getElementById("table-id"); ... }">
<table id="table-id"></table>
</body>
你是否正在使用一些JavaScript框架?
"onLoad" 可以用于 body- 和 frameset- 标签。 要看到一些动作,您可以使用:
"<body onload="function(){alert('This is an action!')}">
我觉得最简单的方法是使用外部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。我使用它来调用一个立即执行的匿名函数。
您可以在代码表格后面直接添加一个<script>
标签。一旦到达脚本标签,就意味着上面的表格元素的DOM已经加载完成,现在可以在下面的脚本中访问它。
注意:以下内容与问题无关,而是针对其他给出的答案。
我建议使用javascript中的addEventListener
函数来添加事件。这可以确保您不会被其他人覆盖或将要被覆盖,想要监听该事件。
var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('load', function(event){ console.log("iframe Loaded", event); })
<object>
元素相关的编程内容。 - Andrey