如何用js判断页面加载完成?
<script>
<!--
document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法.
function subSomething()
{
if(document.readyState == "complete"&&window.parent.frames["框架名"].document.readyState == "complete") //当页面加载状态为完全结束时进入
myform.submit(); //这是你的操作
}
//-->
</script>
--------------
那就再加个IF条件呗:
window.parent.frames["mainFrame"].document.readyState == "complete"
上面代码已修改.
--------------
没有name就加个name呗.而且就算没有name也照样可以那么写啊.没有影响的.
或者你也可以这么写:
window.parent.frames.框架名.document.....
=====================================================================================================
function loadCheck() {
var bool = parent.document.frames['frame'].document.readyState == 'complete';
if (!bool) {
setTimeout('loadCheck()', 1);
} else {
alert('completed!');
}
}
loadCheck();
=====================================================================================================
之前看别人用的是document.onreadystatechange的方法来监听状态改变,然后用document.readyState == “complete”判断是否加载完成,代码如下:
document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法.
function subSomething()
{
if(document.readyState == “complete”) //当页面加载状态为完全结束时进入
myform.submit(); //这是你的操作
}
这种办法对一些页面简单,DOM较少的页面是好的解决方案,但是最近页面里面有嵌入flash,发现flash有自己载入东西的功能,跟页面无关,所以用之前的办法行不通啦,自己变通了一下,用setInterval来监听事件。
代码如下:
var start;
window.onload = function () {
start = setInterval(’updateImg()’, 1000);
}
function updateImg() {
if (document.readyState == “complete”) {
try{
…
clearInterval(start);//执行成功,清除监听
}catch(err){return true;}
}
}
—————-2008-12-4—————
改正一下,因为之前没有测试firefox的,所以并没有发现firefox不支持document.readyState == “complete”,firefox的加载完成事件用window.onload就可以了,所以这个代码修改如下:
var start;
window.onload = function () {
if(document.all) {//简单判断是否是IE
start = setInterval(’updateImg()’, 1000);
} else {
…//要执行的语句
}
}
function updateImg() {
if (document.readyState == “complete”) {
try{
…
clearInterval(start);//执行成功,清除监听
}catch(err){return true;}
}
}