两次单击时,jQuery无法打开已打开的窗口

时间:2018-07-26 21:10:51

标签: javascript jquery

我对JQuery比较陌生。我在JSP中有一个锚标记,单击该锚标记会调用一个函数,然后依次调用一个动作类。如果结果成功,则必须打开一个窗口。第一次运行正常。但是,当我第二次单击锚定的URL时,控件转到动作类,但不会弹出已经打开的窗口。它甚至没有打开一个新窗口。请建议如何解决它?我需要弹出已经打开的窗口。我确定这是由于jquery ajax调用所致,因为该功能在不使用ajax jquery的情况下也能正常工作。但是我需要在我的场景中使用它

示例代码:

打开W3Schools

function func1() {             
               $.ajax({ 
                url: "abc.do",              
                 success: function(response){                                  
                   window.open("https://www.w3schools.com","MyWindow","left=10,top=20,width=1200,height=700,scrollbars=1,resizable=1, status=1, modal=yes"); 
                    },
                    error: function(e){
                        alert('Error: ' , e);
                    }               
                     });  }

2 个答案:

答案 0 :(得分:0)

您的浏览器可能检测到弹出窗口并阻止了该弹出窗口,而没有告知您的程序。您如何调用函数?通常重复的window.open调用只能在类似事件监听器中工作

button.addEventListener("click", ()=>{
    func1();
});

因此,如果您将其循环或类似操作,则弹出式保护就无能为力了。

答案 1 :(得分:0)

尝试将空名称而不是MyWindow传递给窗口,如下所示:

function func1() {             
           $.ajax({ 
            url: "abc.do",              
            success: function(response){ window.open("https://www.w3schools.com","","left=10,top=20,width=1200,height=700,scrollbars=1,resizable=1, status=1, modal=yes"); 
                },
                error: function(e){
                    alert('Error: ' , e);
                }               
                 });  }