我让用户在html页面上进行一些可视化设置。这可能需要一些时间,所以我不希望用户通过某种方式关闭网页来完成设置(没有警告)。
如果我使用了文本区域,复选框等,则浏览器会警告用户。如何告诉浏览器在我的情况下警告用户?
答案 0 :(得分:5)
您可以在下面的示例中使用类似“unsavedChanges”的全局变量。然后,如果用户更改了任何内容,则需要设置该变量。或者在用户关闭网页之前需要确认的任何情况下。
var unsavedChanges = 0;
window.onbeforeunload = function (e) {
if(unsavedChanges != 0){
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'There is some unsaved changes!';
}
// For Safari
return 'There is some unsaved changes!';
}
};
答案 1 :(得分:0)
浏览器通常会通过随页面发送的HTTP标头获取此信息。
例如,Last-Modified标头告诉浏览器页面的年龄。浏览器可以向页面发送简单的HEAD请求以获取最后修改的值。如果它比浏览器在缓存中的更新,则浏览器可以重新加载它。
还有一堆与缓存相关的其他标头(如Cache-Control)。查看:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html