替代<body onload ="init();">

fir*_*ion 17 javascript

我正在尝试修复一个为我编写的旧脚本.我需要它没有运行<body onload="init ();">.我想从脚本内部运行该函数而不使用像该命令那样的内联代码.对不起,我不是JS专家,但我该怎么做?

Bra*_*rad 26

<script type="text/javascript">
    function init() {
        // Put your code here
    }
    window.onload = init;
</script>
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用jQuery:

$(function() {
    // Your code here
});
Run Code Online (Sandbox Code Playgroud)

  • Aaaaand ......再次......我要慢一点......因为我想把一个例子放在一起:\ http://jsfiddle.net/Fx8JW/哦......好吧 (2认同)

Tej*_*ejs 14

在纯JavaScript实现中,您需要等待页面准备好调用您的事件.最简单的解决方案是这样的:

<script type="text/javascript" language="javascript">
      window.onload = function()
      {
          init();
      };
</script>
Run Code Online (Sandbox Code Playgroud)

但是,通过将其放在标签本身上,这并不比原始实现好多少.您可以做的是等待特定事件:

 document.addEventListener("DOMContentLoaded", function()
 {
     init();
 }, false);
Run Code Online (Sandbox Code Playgroud)

这应该在循环中提前一点开始,应该做得很好.

此外,如果您使用的是jQuery,则可以使用简单语法添加要在该事件触发时执行的函数:

 $(document).ready(function() // or $(function()
 {
     init();
 });
Run Code Online (Sandbox Code Playgroud)