2017-07-28 186 views
1

我编写代码以在新窗口中打开弹出窗口。我打开这个窗口几秒钟后,它会自动关闭。我想要的是如果有人在时间限制之前关闭它。我会检测它并向他显示消息。下面是我使用如何查看浏览器弹出窗口将关闭

$(document).ready(function() { 

    var myWindow; 
    $("#idview").click(function() { 
     var vidurl = $('#vurl').val(); 
     counter(); 
     myWindow = window.open(vidurl, "popupWindow", "width=600, height=400, scrollbars=yes"); 

    }); 

    function counter() { 
     var n = $('.c').attr('id'); 
     var c = n; 
     $('.c').text(c); 
     setInterval(function() { 
      c++; 
      if (c <= 41) { 
       $('.c').text(c); 
      } 
      if (c == 41) { 
       $('.c').text(n); 
      } 
     }, 1000); 
    } 



    setInterval(function() { 
     myWindow.close(); 
    }, 45000); 

    window.onbeforeunload = closingCode; 
function closingCode(){ 
    alert('hitme'); 
    return null; 
} 


}); 

我尝试使用window.ununload代码,但它无法正常工作。任何人都可以告诉我如何得到是否有人要关闭浏览器弹出窗口?

感谢

+0

你可以使用'onbeforeunload'检查是否有人关闭弹出窗口 –

+0

您可以检查代码@RAUSHANKUMAR中是否也使用了 –

+0

您需要将onbeforeunload事件绑定到打开后的窗口。所以将代码移到click事件中。看看我的回答@azadchouhan – JYoThI

回答

0

在这里,你去了一个解决方案https://jsfiddle.net/rs01x0oy/

var myWindow; 
 
$("#idview").click(function() { 
 
    var vidurl = $('#vurl').val(); 
 
    counter(); 
 
    myWindow = window.open(vidurl, "popupWindow", "width=600, height=400, scrollbars=yes"); 
 
    myWindow.onbeforeunload = function(){ 
 
     console.log("Closed"); 
 
    }; 
 
}); 
 

 
function counter() { 
 
    var n = $('.c').attr('id'); 
 
    var c = n; 
 
    $('.c').text(c); 
 
    setInterval(function() { 
 
     c++; 
 
     if (c <= 41) { 
 
      $('.c').text(c); 
 
     } 
 
     if (c == 41) { 
 
      $('.c').text(n); 
 
     } 
 
    }, 1000); 
 
} 
 

 

 

 
setInterval(function() { 
 
    myWindow.close(); 
 
}, 45000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="idview" type="submit"> 
 
Submit 
 
</button>

+0

是它在小提琴中工作,但不在我的网页工作..我不知道为什么它的工作 –

+0

我需要你在这里做的相同的事情。即使我也没有在控制台中得到任何错误.. –

+0

请分享您的HTML和整个JS代码....这是一个更多版本https://jsfiddle.net/rs01x0oy/1/ ...更新setInterval。 – Shiladitya

1

1:您需要的onbeforeunload事件绑定到窗口AFTERopened

第二:所以onbeforeunload事件代码移到click event功能

3内:Window.onbeforeunload变化myWindow.onbeforeunload

var myWindow; 
    $("#idview").click(function() { 
     //var vidurl = $('#vurl').val(); 
     var vidurl = "google.com"; 
     counter(); 
     myWindow = window.open(vidurl, "popupWindow", "width=600, height=400, scrollbars=yes"); 

     myWindow.onbeforeunload = function closingCode(){ 
           alert('hitme'); 
           return null; 
          } 

    });