0

当标签出现时,我使用该标签来提醒我

<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需要在标签下才能工作?这里有什么问题?

4

2 回答 2

0

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

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

您是否考虑过在页面加载后执行您的 javascript?您可以使用一些框架,如jQuery来解决跨浏览器问题。或者只是把你所有的 javascript 代码放到正文的最底部。

于 2011-10-11T18:57:22.773 回答
0

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

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

那么代码放在哪里都没有关系。

于 2011-10-11T18:58:57.897 回答