<车身负载=“;init()">
Alternative to <body onload="init ();">
我正在修复为我编写的一个旧脚本。我需要它在没有<body onload="init ();">
的情况下运行。我想从脚本内部运行函数,而不需要像那个命令那样的内联代码。对不起,我不是JS专家,但我该怎么做?
<script type="text/javascript">
function init() {
// Put your code here
}
window.onload = init;
</script>
或者,如果您使用的是jQuery:
$(function() {
// Your code here
});
在纯JavaScript实现中,您需要等待页面准备好调用您的事件。最简单的解决方案是这样的:
<script type="text/javascript" language="javascript">
window.onload = function()
{
init();
};
</script>
但这并不比将其放在标签本身上的原始实现好多少。你能做的就是等待一个特定的事件:
document.addEventListener("DOMContentLoaded", function()
{
init();
}, false);
这应该在周期的早些时候启动,并且应该做得很好。
此外,如果您使用的是jQuery,您可以简单地添加一个函数,以便在触发该事件时使用简单的语法执行:
$(document).ready(function() // or $(function()
{
init();
});
最好的选择是将对init()
的调用放在页面底部:
<html>
<head>
...
</head>
<body>
.... page content here ...
<script type="text/javascript">init();</script>
</body>
</html>
这样把它放在底部,你就可以确保它几乎是页面上最后一个东西。但是,请注意,它不如使用body标记中的onload选项、jquery的$('document').ready()
或mootool的window.addEvent('domready', ...)
那么可靠。
下面是Tejs响应的一个细微变化。我经常发现将init((函数从注册事件处理程序的代码中分离出来更容易阅读和管理:
function init(e) {
//statements...
}
document.addEventListener('DOMContentLoaded', init, false);
此外,我有时会使用一个自执行的匿名函数来代替显式的init((函数,该函数位于页面的最底部,就在</body>
标签之前:
(function() {
//statements...
})();
<script type="text/javascript">
function init() {
// Put your code here
}
window.onload = init;
</script>
不应该使用这个
<script type="text/javascript">
function init() {
// Put your code here
}
window.onload = init();
</script>
相关文章:
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 在<script src=“"></脚本>标签
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- JSP<a href="">无法保存常规语句
- 在MySQL中存储映像路径与使用<img src=“"onError=“">
- $_POST值在<形式动作=“;javascript:someJSFunction()"/>
- 类似于htmls<script src=“">xaml的标签
- 为什么<车身负载=“;fn()">使用函数调用,但是window.onload=fn;使用处理程序函
- 更改URL而不使用<a href="">
- 为什么可以't我将JS代码置于<script src=“">代码</脚本>
- 如何将鼠标悬停在<img src=“">标签
- 如何设置<一个标题=“">用于erb
- 将用户输入动态地附加到<script src=“">来自Java Script中的文本框
- <a href="#">最终调用Javascript函数
- <a href="javascript:foo(this)">通过Window,我想要标记
- 使用<重置所有字段(复选框、文本、选择);body onload()">
- 如何从<a href="">到javascript函数
- IE总是在<a href="#"/>被单击
- JS:有一个新的运算符"=>&”;