如何告诉Web浏览器用户修改了页面?

Leo*_*Leo 0 javascript jquery dom

我让用户在html页面上进行一些可视化设置.这可能需要一些时间,因此我不希望用户通过以某种方式关闭网页来完成设置(没有警告).

如果我使用了文本区域,复选框等,则浏览器会警告用户.如何告诉浏览器在我的情况下警告用户?

Han*_*ain 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!';
    }
};
Run Code Online (Sandbox Code Playgroud)