<form>
……
<input type='button' onclick='login();return false;' />
</form>function login(){
    window.open('xxx.jsp','');
}function login(){
    Ajax({
        success:function(){
            window.open('xxx.jsp','');
        }
    });
}
1.第一个login函数,没调用ajax,打开的窗口不被浏览器拦截。
2.第二个login函数,调用了ajax,打开的窗口被浏览器拦截。1.求解释,这是为什么?
2.针对这种情况,我如何能让调用ajax实现就像不调用一样打开新窗口的效果?
3.目前实现的方法是在打开窗口时去判断是否已经打开,感觉很不合适。
4.要求尽可能地跨浏览器。

解决方案 »

  1.   

    直接open不行,为什么还非得用AJAX请求来判断是否打开呢?如果一定要判断,直接JS里操作不就好了。一定要用AJAX吗?难道想实现无刷新?
      

  2.   

    建立一个 form(也可以页面里面预先放了一个form)
    设置属性 target='_blank'
        属性 action='要打开的页面url'然后 调用 form的submit方法 就可以了
      

  3.   

    谢谢楼上,form和anchor标签都试过了。谷歌浏览器不行,OPERA不能打开新窗口。
      

  4.   

    给新窗口一个明确的名字试试
    现在的浏览器默认都有拦
    function login(){
        window.open('xxx.jsp','newWindow');
    }