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

发布于 2024-12-09 13:41:42 字数 714 浏览 0 评论 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 需要在该标签下才能工作? 这里有什么问题吗?

i use that tag to alert me when a tag has been shows up

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

strange , since this code working :

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

why the Js need to under the tag to work?
what's the problem here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我ぃ本無心為│何有愛 2024-12-16 13:41:42

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

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

那么代码放在哪里并不重要。

Because the code in a script tag is executed immediately. And in the first example the iframe doesn't exist at that time. But what you can do is to wrap you code into an onload (for the main page) event. E.g.:

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

Then it doesn't matter where the code is placed.

陪你搞怪i 2024-12-16 13:41:42

您尝试访问 iframe 标记时不存在。
您可以通过简单地警告数组长度来检查这一点,例如

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

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

Iframe tag does not exist at the moment you are trying to access it.
You may check that by simply alerting array length, like

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

Have you thought about executing your javascript after the page is loaded? You may use some frameworks like jQuery to facilitate crossbrowser issues. Or just put all your javascript code to the very bottom of body.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文