我使用了下面的代码来关闭窗口选项卡。它工作得很好。但有时不起作用。
$(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!';
});发布于 2013-11-15 15:01:24
你有一个竞态条件。当您的AJAX请求正在传输时,浏览器正在拆除页面,并将您的AJAX请求随身携带。使用同步AJAX:
$.ajax({
async: false,
....在某些情况下会有帮助(我自己也用过--根据经验,它是有效的),但我不认为任何东西都能在这里工作。浏览器通常对在beforeunload中可以做的事情有相当严格的限制。
https://stackoverflow.com/questions/19995198
复制相似问题