因为一个页面从open到load要有一个时间延迟,所以你的代码会出现错误,不要使用这种方式传值,很不稳定.
    建议使用show_failuer.html?msg=XXX的方式(用于ASP,用法就不说了) 或show_failuer.html?XXXX的方式(用于JS,在JS里可以用document.location.search取得?XXXX部分,自己再处理一下就OK了).

解决方案 »

  1.   

    newwin.document.getElementById("show_result").innerHTML= "ABCD";
    应该是这个存在错误
    show_result这个有可能还没有加载进俩吧
      

  2.   

    在打开的窗口中onload中赋值不就很强壮了if(对象) 对象.属性或方法
      

  3.   

    var newwin = window.open("/show_failuer.html","errwin","heigth=200,width=400",status=yes,toolbar=no,menubar=no,location=no,alwaysRaised=yes");
    改为:
    var newwin = window.open("show_failuer.html","errwin","heigth=200,width=400,status=yes,toolbar=no,menubar=no,location=no,alwaysRaised=yes");
    newwin.document.getElementById("show_result").innerHTML= "ABCD";这句没有问题(至少在我的机子上没有问题)
    ps:如果show_failuer.html中<td id ="show_result"></td>是在一个表中间的话,那么
    newwin.document.getElementById("show_result").innerHTML= "ABCD"是没有问题的。
    但如果在show_failuer.html中<td id ="show_result"></td>是单独在body中的话,
    newwin.document.getElementById("show_result").innerHTML= "ABCD"就会出错。具体原因我也不清楚 :(
      

  4.   

    谢谢大家的参与, 
    GageCSDN(稻草人) 明白我的意图,就是想把把错误信息放到一个新打开的窗口中。
    我的代码错误原因就是刚打开show_failuer.html这个页面还没有加载完毕,就调用里面的td,当然IE会报告对象不存在了。原来的代码是用模式框的,传对象的方法把值带进去,但是以后要兼容Netscape,所以我就换用window.open()的方法试试。