javascript标记触发器 - 页面上的代码位置

时间:2011-10-11 18:53:49

标签: javascript eventtrigger

我使用该标签在标签显示时提醒我

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      document.getElementsByTagName('iframe')[0].onload = function() {
        alert('loaded');
      }
    </script>
    <iframe></iframe>
  </body>
</html>

奇怪,因为这段代码正常工作:

<html>
  <head>
  </head>
  <body>
    <iframe></iframe>
    <script type="text/javascript">
      document.getElementsByTagName('iframe')[0].onload = function() {
        alert('loaded');
      }
    </script>
  </body>
</html>

为什么Js需要在标签下工作? 这有什么问题?

2 个答案:

答案 0 :(得分:0)

当您尝试访问时,iframe标记不存在。
您可以通过简单地提醒数组长度来检查,例如

alert(document.getElementsByTagName('iframe'));

您是否考虑过在加载页面后执行javascript?您可以使用jQuery之类的框架来促进交叉浏览器问题。或者只是将所有的javascript代码放在正文的最底部。

答案 1 :(得分:0)

因为脚本标记中的代码会立即执行。在第一个示例中,iframe当时不存在。但是你可以做的是将代码包装到onload(用于主页)事件中。 E.g:

window.onload = function() { 
    //your code
}

然后放置代码无关紧要。