jquery - Chrome 没有正确观察脚本标签上的 onload 事件?

标签 jquery google-chrome event-handling dom-events onload

我正在使用 Javascript 动态加载外部 Javascript 文件,在我的应用程序中,我需要知道这些脚本何时完全加载到内存中,然后其余进程才能继续。我已尝试使用以下代码来监视附加到头部的脚本标签上的 onload 事件:

var headID = document.getElementsByTagName("head")[0];         
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.onload = scriptLoaded;
newScript.src = '/path/to/file.js';
headID.appendChild(newScript);

<子> 来源:http://www.hunlock.com/blogs/Howto_Dynamically_Insert_Javascript_And_CSS

这在 FireFox(最新版本的 Windows 和 OS X)中运行良好,但似乎 Chrome(同样在 Windows 和 OS X 版本中)没有正确观察事件,并且回调函数被过早调用。

有什么想法吗?

最佳答案

设法通过使用 jQuery 重写来解决问题:

var script_tag = $('<script><\/script>');
script_tag.attr('type', 'text/javascript');
script_tag.bind('load', function(e)
{
    console.log('script loaded');
});
script_tag.attr('src', '/path/to/file.js');
$('head')[0].appendChild(script_tag[0]);

不确定为什么会修复它,也许 chrome 只是不喜欢在第一个使用纯 javascript 的实现中创建脚本标签的方式。 耸肩

关于jquery - Chrome 没有正确观察脚本标签上的 onload 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4783941/

相关文章:

c# - 应用程序在处理所有事件之前退出 - 基于事件的异步模式

javascript - jQuery 和 Audio.js : song dynamically added to playlist not playing or recognizing

javascript - jQuery fadeIn 和 fadeOut div

php - 如何从 jquery ajax 调用 codeigniter 函数

javascript - Chrome DevTools 如何衡量交互响应?

html - 关键帧动画仅适用于 Internet Explorer

jquery - 使用 deepWithDataAndEvents 克隆事件处理程序?

jquery - 使用 radio 输入切换附加类

javascript - 如何使用 jquery 在 DOM 之后返回按钮

javascript - 抑制 Google Chrome 中的 "Rats! WebGL hit a snag."错误栏