我使用以下代码进行窗口关闭选项卡。它的工作正常。但有时候不起作用。
$(window).on('beforeunload', function() {
var i = "<?php echo $this->uri->segment(4);?>";
var j = "<?php echo $_SERVER["REMOTE_ADDR"];?>";
var k = "<?php echo base_url();?>";
$.ajax({
url: "<?php echo base_url().'home/gethost';?>",
type: "POST",
data: { id : i , ip: j },
datatype : "html"
});
return 'Exit Now!';
});
答案 0 :(得分:0)
你有竞争条件。当您的AJAX请求正在进行中时,浏览器正在拆除页面并随之收取您的AJAX请求。使用同步AJAX:
$.ajax({
async: false,
....
在某些情况下会有所帮助(我自己也使用过它 - 根据经验,它可以正常使用)但我认为保证在这里工作没有任何意义。浏览器通常会对beforeunload
中可以执行的操作施加非常严格的限制。