【问题标题】: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】:
有两个问题:
- 第一行末尾缺少
>(你写的是</script而不是</script>)
- 没有变量
me:您已将脚本标签检索到变量oB。
因此,您可以通过将 me.onload = ... 更改为 ob.onload = ... 来修复您的代码。
此外,您应该避免使用事件侦听器的内联声明,例如 <script onload="...">。
最后但同样重要的是,您应该使用addEventListener 而不是onxxx:addEventListener vs onclick