defer
等于在页面完全在入后再执行,相当于
window.onload
,但应用上比
window.onload
更灵活
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type"
content="text/html
charset=utf-8"
/>
<title>无标题文档</title>
</head>
<body>
<script
defer="defer">
alert("页面加载完我才执行的")
</script>
先看到这段话
然后再执行上面的
JS
如果去掉上面的
defer="defer"
那么会先执行JS
在看到这段话
</body>
</html>
<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.....
--------------
P了..加的是if条件.你循环顶什么用.照你这么循环.只要第一个frame加载完就直接执行了.哪儿还能循环到下一个frame.
老老实实把想判断的frame加到if里吧.
例如方法:function test(){return 1}
页面加载完毕事件:
window.onload = function(){
setTimeout(test,1000)//1000毫秒=1秒后执行test方法
}
如果你使用jquery的话可以:
$(window).load(function(){
setTimeout(test,1000)//1000毫秒=1秒后执行test方法
})
setTimeout是只执行一次,重复执行使用setInterval
window.onload = function(){
setInterval(test,1000)//1000毫秒=1秒,每隔1秒执行一次test方法
}