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>
比较简单的页面,可以采用
//放置在<header></header>之间window.onload = function(){
//在这里写js
}
//或其他javascript框架所定义的函数(也是应用onload),比如jquery:
$(function(){
})
//或将js放在页面底部,</body>之上。
对于比较复杂的页面,比如,某些数据(包括文字,图片,远程加载第三方的内容,以及来自后台通过异步调用耗时的数据等)加载,那么,就需要自定义一个loading函数,在loading函数中,判断所有内容均加载完成后,同时在未加载完成前,需要显示给用户一个加载中的界面,当完成加载后,隐藏或删除这个界面,最后来调用你希望的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.....
--------------
P了..加的是if条件.你循环顶什么用.照你这么循环.只要第一个frame加载完就直接执行了.哪儿还能循环到下一个frame.
老老实实把想判断的frame加到if里吧.