问题:默认onload会等待文件加载完毕才执行,如果你的页面有一个视频怎么办?那要等n久,而我们想要的是dom树建立完成后执行一些操作。
解决:把下面代码放在头部或者外部文件引入:
<script type="text/javascript">
// Dean Edwards/Matthias Miller/John Resig
function init() {
// 加入已经被调用过了就退出
if (arguments.callee.done) return;
// 保证只被调用一次的标志
arguments.callee.done = true;
//删除timer
if (_timer) clearInterval(_timer);
// do stuff
};
/* for Mozilla/Opera9 */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}
/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id="__ie_onload" defer="" src="javascript:void(0)"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
init(); // call the onload handler
}
};
/*@end @*/
/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
init(); // call the onload handler
}
}, 10);
}
/* for other browsers */
window.onload = init;
</script>
源文地址:http://dean.edwards.name/weblog/2006/06/again/
分享到:
相关推荐
为了解决这个问题,需要在onload事件处理程序中重新指定img.src属性。这样做的目的是为了告诉浏览器要加载的是一个新的图片资源,以此绕过缓存,从而确保onload事件能够被触发。 以上就是从给定文件信息中提取的...
这两个事件处理函数都可以用来解决一些初始化操作,比如初始化JavaScript库、调整页面布局或者执行动画等。然而,`window.onload` 更为全面,能确保所有资源都已加载完毕,因此在处理包含大量外部资源的页面时,通常...
5. **故障排查与支持**:用户可能遇到的问题和解决策略也会被详细列出,帮助用户快速定位并解决问题。 6. **安全考虑**:由于Onload涉及到网络通信,因此会有关于数据安全和隐私保护的指导,包括如何配置安全设置以...
通过这种方式,我们不仅解决了 `onLaunch` 和 `onLoad` 异步执行的问题,还避免了可能出现的“异步地狱”,使得代码更加清晰、易于理解和维护。同时,Promise 的使用也遵循了异步编程的最佳实践,使得代码的执行顺序...
为了解决这个问题,一种有效的策略是调整代码顺序,先定义`onload`事件处理器,然后再设置图片的`src`属性。这样,当图片开始加载时,`onload`事件处理器已经准备就绪,无论图片是从缓存还是服务器加载,都能够确保...
为了解决这个问题,许多JS库,例如jQuery和Prototype,提供了相应的函数来模拟实现onload事件的功能。这些函数可以让我们在加载完某些资源后执行某些操作,而不需要等到所有的HTML元素加载完成。 那么,我们可以...
本文将详细探讨这个问题,并提供解决方案。 `body.onload` 是HTML `<body>` 标签上的一个事件,当整个HTML文档的DOM(Document Object Model)结构加载完成,但不包括外部资源(如图片、脚本、框架等)时触发。而 `...
本文实例讲述了IE8中动态创建script标签onload无效的解决方法。分享给大家供大家参考。具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件。 代码如下: 代码如下:var...
并且随页面大小的不同情况... 解决办法是再onload触发前改变图片src的值,也就是相当于图片开始时有个临时的占位图片,页面载入过程中用js换成实际需要的src,只要每次onload事件触发前src发生变化,则onload表现正常。
在探讨JavaScript中onload事件在JSP页面上不起作用的问题时,可以深入分析几个关键知识点,包括onload事件的基本概念、在JSP页面中使用onload事件的正确方式,以及可能导致onload事件失效的具体原因和解决办法。...
为了解决这个问题,开发者需要调整代码的顺序,确保`onload`事件处理器在设置`src`属性之前被添加。正确的做法是先定义图片加载完成后要执行的函数,即`onload`事件处理器,然后再设置图片的`src`,这样无论图片是否...
下面我们将详细探讨这个问题以及如何解决。 首先,我们要理解为什么`img`元素在未添加到文档时依然会触发`onload`事件。这是因为浏览器的渲染机制会尝试提前加载图片资源,即使它们尚未被插入到DOM树中。当图片加载...
为了解决这个问题,开发者尝试了使用JavaScript的screenTop和screenLeft属性来区分用户是关闭窗口还是仅仅是在页面内操作。screenTop属性返回浏览器窗口客户区左上角相对于屏幕左上角的y坐标,而screenLeft属性返回x...
在这种情况下,清除缓存、重启开发工具或者强制刷新页面通常能解决问题。 在实际开发中,`onLoad` 常用于获取网络数据,例如使用 `wx.request` 获取服务器上的数据,或者使用 `wx.getStorageSync` 获取本地存储的...
解决这个问题的关键在于,我们需要在图片开始加载之前设置`onload`事件监听器。以下是一种跨浏览器兼容的解决方案: ```html window.onload = function() { var img = document.getElementById('imgId'); var ...
总之,理解`iframe`的`onload`事件以及不同浏览器的处理差异是解决此类问题的关键。通过调整代码结构和顺序,可以有效地避免`iframe`的`onload`事件在Chrome和Opera中被触发两次的问题,从而保证应用的正常运行和...
要解决这个问题,可以在通用初始化代码中判断当前状态,确保在适当的时机调用 `onShow`。 总之,通过代理 `onLoad` 生命周期并维护生命周期顺序,我们可以实现统一的初始化代码执行,从而提高代码复用性和组织性。...