2017-01-10 90 views
1

我需要在离开编辑页面前提示用户,以便他不会丢失未保存的更改。我写了下面的代码,但它是越野车。一旦用户在编辑页面上并按下F5键后拒绝刷新操作,则正常刷新不会触发。Javascript角度条件页面刷新

$(document.body).on("keydown", this, function (event) { 
    if (event.keyCode == 116 && isEditPage()) { 
    if (!confirm('you will lose all the pending changes. are you sure you want to leave this page?')) { 
     return false; 
    } 
    } 
    return true; 
}); 
+0

你可以请一个运动员吗? –

+0

你在这里检查这一个http://stackoverflow.com/questions/2482059/disable-f5-and-browser-refresh-using-javascript – Strikers

回答

0

您可以注册事件侦听器,当用户正在离开页面时会触发事件侦听器,其中包含未保存的更改。页面刷新可以启动,甚至没有按f5键(使用浏览器导航按钮,重新加载图标等)。

window.onbeforeunload = function (e) { 
    var message = "Your confirmation message goes here.", 
    e = e || window.event; 
    // For IE and Firefox 
    if (e) { 
    e.returnValue = message; 
    } 

    // For Safari 
    return message; 
}; 
0

请检查该discussion,并尝试这种方式之下。

$scope.$on('$routeChangeStart', function(next, current) { 
     return 'are you sure you want to leave?'; 
    }); 

您可以在下一个当前参数中获取下一个当前路径。

+1

@CollinD哎呀!我已经更新了我的答案 –