【问题标题】:How to listen to a script tag's onload event?如何监听脚本标签的 onload 事件?
【发布时间】:2015-08-04 06:32:48
【问题描述】:
<script id="me" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script
<script>
    var oB = document.getElementsById('me');
    me.onload = function(){
        alert('OK');
    }
</script>

为什么脚本加载后没有触发me.onload?

【问题讨论】:

    标签: javascript dom-events


    【解决方案1】:

    在您执行警报代码之前,id为“me”的脚本标签已经下载,因此尽管您的代码中有语法错误,但您无法获得警报。

    你可以简单地使用:

    <script id="me" onload="alert('OK');"src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    

    【讨论】:

      【解决方案2】:

      document.getElementById 而不是document.getElementsById

      oB 而不是me

      <script id="me" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script
      <script>
          var oB=document.getElementById('me');
          oB.onload=function(){
              alert('OK')
          }
      </script>
      

      但这也行不通,因为我已经像其他答案状态一样加载了。

      【讨论】:

        【解决方案3】:

        有两个问题:

        • 第一行末尾缺少&gt;(你写的是&lt;/script而不是&lt;/script&gt;)
        • 没有变量me:您已将脚本标签检索到变量oB。

        因此,您可以通过将 me.onload = ... 更改为 ob.onload = ... 来修复您的代码。

        此外,您应该避免使用事件侦听器的内联声明,例如 &lt;script onload="..."&gt;。

        最后但同样重要的是,您应该使用addEventListener 而不是onxxx:addEventListener vs onclick

        【讨论】:

          猜你喜欢
          • 2019-11-02
          • 1970-01-01
          • 2013-04-20
          • 2010-12-08
          • 2017-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多