我有这段代码:
HTML:
<div id="wrapper">
<div>d</div>
<div>s</div>
<div>w</div>
</div>
JS:
window.onbeforeunload = function(e) {
$('#wrapper>div').each(function(k,v) {
if($(this).text() == 's') {
return 'aaaa';
}
});
}
http://jsfiddle.net/edhvkhg7/2/
当我尝试关闭Chrome标签时,不会显示确认弹出窗口。为什么呢?
答案 0 :(得分:4)
您只是从迭代函数返回,而不是从beforeunload
处理程序返回。 jQuery对函数返回值的唯一作用是测试它是否为false
,并停止迭代。它不会从包含函数返回。
window.onbeforeunload = function(e) {
var return_val = null;
$('#wrapper>div').each(function(k,v) {
if($(this).text() == 's') {
return_val = 'aaaa';
return false; // End the loop
}
});
return return_val;
};
答案 1 :(得分:1)
window.onbeforeunload = function(e) {
$('#wrapper>div').each(function(k,v) {
if($(this).text() == 's') {
$(this).text('aaaa');
}
});
}