我有一个带有网址的表单:
localhost:83/mysite/item/UpdateItems/225
我有一个临时表,我在其中加载数据并在临时表格中以我的形式显示。
当我刷新页面时,我不想触发ajax调用并截断表格。但是,如果我从菜单中单击另一个链接,那么我确实要激活ajax调用并截断表。
有可能吗?
单击另一个菜单时,我使用beforeunload
作为截断表:
$(window).on('beforeunload', function(){
//My ajax code for truncate table
});
但这也适用于页面刷新,我不想要。所以我尝试在URL中匹配字符串:
$(window).on('beforeunload', function(e){
if (document.URL.indexOf("UpdateItems") > -1) {
console.log("page refresh");
}else{
console.log("not refreshed");
}
});
但即使我点击了另一个菜单,这总是会进入首页刷新状态。
答案 0 :(得分:0)
试试这个,一定会有用,
<SCRIPT language="javascript">
window.onbeforeunload=before;
function before(evt)
{
if(window.location.toString().indexOf("UpdateItems") > -1) {
console.log("page refresh");
}
else{
console.log('Not');
}
}
</script>
答案 1 :(得分:0)
如果(并且这是一个非常大的问题)通过单击页面上的链接(而不是从脚本或用户点击浏览器刷新按钮)来完成刷新,这种方法可能有效:
如果有人单击不应导致表被截断的链接,则将标志设置为false,并且只有在标志为true时才运行代码:
// As default the flag is true.
flagTruncate = true;
// When someone clicks a link with UpdateItems in the URL, the flag is set to false.
$("a[href*='UpdateItems']").click(function () {
flagTruncate = false;
});
//Only truncate the table when the user is leaving if the flag is still true.
$(window).on('beforeunload', function() {
if(flagTruncate) {
//Truncate the table.
}
});