为什么html.onload不起作用

时间:2015-04-18 18:59:43

标签: javascript html

一个愚蠢的问题,我在Chrome浏览器中尝试过以下代码,控制台没有输出,有人会看看吗?

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>x</title>
    <script type="text/javascript">
      function onload(){
          console.log('call');
      }
      window.onload= onload;
    </script>
  </head>

  <body >
  </body>
</html>

2 个答案:

答案 0 :(得分:6)

您已进入全球范围,并且您已将您的函数命名为onload,并因此使用您的函数使用相同名称覆盖全局window.onload处理程序。

重命名该功能!

function myFunction(){
      console.log('call');
}

window.onload = myFunction;

答案 1 :(得分:1)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>x</title>
    <script type="text/javascript">
      function loadMe(){
          console.log('call');
      }
      window.onload= loadMe;
    </script>
  </head>
  <body >
  </body>
</html>

DEMO window.onload

但您也可以尝试:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>x</title>
    <script type="text/javascript">
      function loadMe(){
          console.log('call');
      }
    </script>
  </head>

  <body onload="loadMe();">
  </body>
</html>

DEMO body.onload


window.onload vs body.onload

使用window.onload,因为将结构与动作分开是很好的。