怎么判断页面是否已经onload了呢? 我需要判断页面是否已经onload过了,因为如果是在类似$.ready中会出问题ie和chrome中可以document.readyState=="complete"来判断,ff中不行,要怎么来判断好呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $(function(){ alert('页面已经加载....');}) 哦,lz没明白我的意思,我有一个方法我就是怕在$中的执行的,所以要判断 是否已经onload了,如果onload了就直接执行,没有则加到onload中执行 直接放倒window.onload里面执行不可以? 嗯,不行的,因为我在写一个类似插件一样的东西,我无法知道保证别人都是在onload中执行的,而不是在ready中执行的,所以我要判断,有没什么办法 ? http://yiminghe.javaeye.com/blog/353762 look a eye ~~ 那个我都知道,没用的我的问题是我想在onload 之后 执行我的方法,但是我写的是插件,不知道别人是在onload中执行的了还是在jquery.ready或者Ext.onReady中的执行的,因为这咱ready是在onload之前,所以我可以我想如果是在ready中执行就写个onload来调用 ,如果是onload中就直接执行,所以我需要这个判断, var $ready = function(f){ // 如果Dom加载完毕 那么就直接执行函数 if($ready.done) return f(); // 如果已经绑定了一个函数 if($ready.timer){ // 将下个函数排队 $ready.ready.push(f); }else{ // 由于firefox的缓存优化有可能onload早于dom加载完毕 window.onload = $isReady; // 将函数保存起来 $ready.ready = [f]; // 不断的通过$isReady函数去判断是否加载完毕 $ready.timer = setInterval($isReady, 13); } }; var $isReady = function(){ // 如果已经完毕 则返回即可 if($ready.done) return false; // 通过几个元素特性 不断判断document等是否完全加载完毕 if(document && document.getElementsByTagName && document.getElementById && document.body){ // 如果完毕. 停止检测时钟. 清空变量 循环执行函数 将done标志置为完毕 clearInterval($ready.timer); $ready.timer = null; for(var i = 0; i < $ready.ready.length; i++){ $ready.ready[i](); } $ready.ready = null; $ready.done = true; } };使用方法: $ready(function(){ alert('dom is onload'); // DOM已经确保加载完毕,可以进行相关操作 }); to Click_Me:我不是要判断dom是否加载完毕,而要判断我的方法是在onload之前还是onload之后.如果在你这种代码里执行就是onload之前,如果在onload里执行就是在onload之后,我就是要帮这个判断 是个相当于插件的东西,我怎么能保证别人不用onload? 就是在ff中有没有相当于ie document.readyState=="complete"的东西或者事件 这个规矩是你定的,你完全可以写个文档,告诉别人你的方法在什么时候用,就像我们写js不能在dom加载之前访问dom一样。 大家把问题想复杂了吧,我感觉用同typeof就可以判断onload上是否被绑定函数了!这个函数的作用和window.onload类似,不过它更有效,因为它可以检查window.onload上是否被绑定上函数:function addLoadEvent(){//将已经绑定到Window.onload的函数赋给oldonload;var oldonload=window.onload;//如果window.onload上未绑定函数,则将需要绑定的函数直接绑定到window.onload上;if(typeof window.onload!="function"){window.onload=func;}//若已经绑定,则将已经绑定的函数和未绑定的函数一起加载;else{window.onload=function(){oldonload();func();}}}楼主仔细分析一下! 将你的代码放到try-catch中,然后通过定时器来判断你要的对象是否存在,直到得到对象为止 怎么判断extjs 中gridpanel中是否存在数据 基于javascript脚本语言的表单用户名验证的一个小问题 js 模拟windows右键功能 看JQ,解代码。 百分求解 100分求助跨域刷新父页面问题 鼠标拖曳问题 textRange的findText()方法的困惑 怎么总说缺少对象? 请问如何做图片的左环绕 js怎样判断一个字符串是否符合输入的是中文,字母,数字,空格,下划线所组成的字符串 模拟双击事件
alert('页面已经加载....');
})
我的问题是我想在onload 之后 执行我的方法,但是我写的是插件,不知道别人是在onload中执行的了还是在jquery.ready或者Ext.onReady中的执行的,因为这咱ready是在onload之前,所以我可以我想如果是在ready中执行就写个onload来调用 ,如果是onload中就直接执行,所以我需要这个判断,
var $ready = function(f){
// 如果Dom加载完毕 那么就直接执行函数
if($ready.done) return f();
// 如果已经绑定了一个函数
if($ready.timer){
// 将下个函数排队
$ready.ready.push(f);
}else{
// 由于firefox的缓存优化有可能onload早于dom加载完毕
window.onload = $isReady;
// 将函数保存起来
$ready.ready = [f];
// 不断的通过$isReady函数去判断是否加载完毕
$ready.timer = setInterval($isReady, 13);
}
}; var $isReady = function(){
// 如果已经完毕 则返回即可
if($ready.done) return false;
// 通过几个元素特性 不断判断document等是否完全加载完毕
if(document && document.getElementsByTagName && document.getElementById
&& document.body){
// 如果完毕. 停止检测时钟. 清空变量 循环执行函数 将done标志置为完毕
clearInterval($ready.timer);
$ready.timer = null;
for(var i = 0; i < $ready.ready.length; i++){
$ready.ready[i]();
}
$ready.ready = null;
$ready.done = true;
}
};
使用方法: $ready(function(){
alert('dom is onload');
// DOM已经确保加载完毕,可以进行相关操作
});
我不是要判断dom是否加载完毕,而要判断我的方法是在onload之前还是onload之后.如果在你这种代码里执行就是onload之前,如果在onload里执行就是在onload之后,我就是要帮这个判断
function addLoadEvent(){
//将已经绑定到Window.onload的函数赋给oldonload;
var oldonload=window.onload;
//如果window.onload上未绑定函数,则将需要绑定的函数直接绑定到window.onload上;
if(typeof window.onload!="function"){
window.onload=func;}
//若已经绑定,则将已经绑定的函数和未绑定的函数一起加载;
else{
window.onload=function(){
oldonload();
func();
}
}
}楼主仔细分析一下!