产生原因:文档未加载完毕就使用了其中的对象
解决办法:
vBrowser=new Browser();
//ie browser
if (vBrowser.isIE) {
document.onreadystatechange = function() {
if (document.readyState=="complete") {
doInit();
}
}
//firefox browser
}else {
document.addEventListener("DOMContentLoaded", doInit, false);
}function doInit()
{
try
{
document.readyState="complete";
}
catch(ex)
{}
....在相应位置检查:document.readyState=?="complete",Y继续,否则...
解决办法:
vBrowser=new Browser();
//ie browser
if (vBrowser.isIE) {
document.onreadystatechange = function() {
if (document.readyState=="complete") {
doInit();
}
}
//firefox browser
}else {
document.addEventListener("DOMContentLoaded", doInit, false);
}function doInit()
{
try
{
document.readyState="complete";
}
catch(ex)
{}
....在相应位置检查:document.readyState=?="complete",Y继续,否则...
document.body.appendChild()导致IE已终止操作
试试document.body.insertBefore(obj, document.body.childNodes[0]);
document.body.appendChild(HelperDiv);
---》》》
document.body.insertBefore(HelperDiv,document.body.firstChild); 相关:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>HTML错误</title>
</head><body>
会出现“已终目操作”的错误(不属script错误)。<br/>
JK理解:用innerHTML或用appendChild时,就表明已有了最后一个元素,有了结束符。 如果html还加元素或加结束符,都会有矛盾
<div>
<script >
document.body.appendChild(document.createElement("input"));
//document.body.insertBefore(document.createElement("input"),document.body.lastChild);
</script>
</div>
</body>
</html>
http://download.csdn.net/source/997377
js文件或<script>段中不要直接运行那些可能还没有加载完毕的对象,将它们都放到doInit()中去这段代码可以放在任何地方,让页面加载时自动执行(不通过调用)-----可以放在BODY放也可放在BODY末
Browser是一个浏览器检测类
IE已经支持document.readyState,但其它浏览器不一定支持,所以对所有浏览器用了:document.readyState="complete"; ---------因为你遇上的问题,也是我遇上过的问题(我开始还以为是IIS因为出错给停止了,呵呵)
个个说的乱七八糟,几乎都是废话