我有一个onbeforeunload事件,当我离开页面并运行我附加到该事件的代码时,该事件应该触发。我把它放在我页面中的cshtml的scripts标签中,所以理论上它只应该触发我在那个特定的页面上然后离开它(我对事件的理解可能是不正确的)。但是,当我转到另一个页面时,onbeforeunload事件似乎不想触发。我已经尝试在它上面设置一个断点,但似乎没有点击它,并且我的控制台上没有出现任何错误。
我看过这篇帖子,其中一张海报提到使用此事件来检测页面更改 Best way to detect when a user leaves a web page?
<script type="text/javascript">
$(document).ready(function () {
window.onbeforeunload = SaveDashboard;
});
function SaveDashboard(){
var gridArray = _.map($('.grid-stack .grid-stack-item:visible'), function (el) {
el = $(el);
var gridID = el.find('.grid-stack-item-content.ui-draggable-handle').first().attr('id');
var node = el.data('_gridstack_node');
return {
id: gridID,
x: node.x,
y: node.y,
width: node.width,
height: node.height
};
});
$.ajax({
url: 'Dashboard/EditWidgets/',
type: 'PUT',
data: {
widget: gridArray
},
success: function (dataset) {
},
failure: function (xhr, error) {
console.log(xhr)
console.log(error)
},
});
}
</script>
答案 0 :(得分:0)
你应该在onbeforeunload
处理程序中返回一个字符串。如果你没有退货,那么这个活动就不会解雇你的经纪人。您必须返回的文本是将放置在浏览器将打开的提示中的文本,询问用户是否确实要离开页面。