MSDN 的文档说当重新为 form 指定了 target 属性后,如果提交时没有发现有窗口的名字跟 target 所指定的一样,就会新打开一个窗口,所以我觉得一定是用 window.open 打开的窗口没有跟为它指定的名字绑定,或者表单提交的时候在查找指定名称的窗口时出了问题。请各位高手指点,还有就是有没有其它替代的方法也能达到这个目的?

解决方案 »

  1.   

    是 IE 5,但别的 IE 5 也没有这个问题,这是这个出问题的 IE 打过很多安全补丁,而其它的没有,会不会是这些补丁搞得?可是这样我的程序就没法工作了啊:(因为我页面中的同一个表单要向不同的 cgi 提交,而且结果页面要开一个小窗口显示,所以就这么做了,还有什么其它办法吗?
      

  2.   

    5.0/5.5/6.0sp1(xpvlk下)/6.0sp1(2003)我这里怎么都ok?5.0/5.5是98/me的,都打过所有补丁。没有问题啊……
      

  3.   

    <script>
    ……
    Form.action = "test.cgi";
    Form.method = "get";
    Form.target = "NewTarget";
    ……
    </script>
    <form onsubmit='window.open( "", "NewTarget", "toolbar=no" )'>
      

  4.   

    摸着石头过一次河:
    把这一句话
    window.open( "", "NewTarget", "toolbar=no" );改成这样的再试试
    window.open( "about:blank", "NewTarget", "toolbar=no" );
      

  5.   

    to xinyunyishui(心云意水):我这里是 2000,还有就是我没说清楚,不是操作系统的 SP,而是 IE 的安全补丁,而且打了很多!
    to JK_10000(JK):我已经做过很多试验了,包括你说的这种:)
    现在已经可以肯定就是在提交之前我指定了新的 target,而一旦提交IE发现没有名为NewTarget的窗口,所以它就又打开了一个普通窗口,可其实那个名为NewTarget的窗口其实已经打开了:(
      

  6.   

    Form.action = "test.cgi";
    Form.method = "get";
    Form.target = "NewTarget";
    window.open( "about:blank", "NewTarget", "toolbar=no" );
      

  7.   

    另外你的FORM的名最好不要用Form这么简单。
      

  8.   

    应该是一个时间差的问题, 在 name=NewTarget 的新网页被 open 出来之前表单就提交了, 而在表单提交的时候由于没有 name=NewTarget 的网页存在(还没有被打开), 所以自然就提交到了一个普通的新页里去了.所以你可以将window.open语句放到 onsubmit 事件里去, 代码如: possible_Y
      

  9.   

    Form.action = "test.cgi";
    Form.method = "get";
    winObject = window.open("","NewTarget","toolbar=no")
    if ((winObject==null)||(winObject==undefined)) return;
    Form.target = winObject.name
    Form.submit()
      

  10.   

    to meizz(梅花雨疏影横斜):应该不是你说的这个原因,我在 open 之后加了一段长延时也不行