【问题标题】:How do I tell the web browser that the user has modified the page? [duplicate]我如何告诉网络浏览器用户已经修改了页面? [复制]
【发布时间】:2014-02-07 03:55:57
【问题描述】:

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

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

【问题讨论】:

  • 修改时设置标志,离开页面前检查。
  • 你需要onbeforeunload事件
  • 哦,谢谢大家的帮助。我试过了,但在这里没有找到答案。

标签: javascript jquery dom


【解决方案1】:

您可以在下面的示例中使用像“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!';
    }
};

【讨论】:

  • 谢谢,是的,上面的 cmets 也是这么说的。现在这里的做法是什么,我应该选择这个作为答案,还是? (之前已经回答过了。)
  • 哦!我没有看到有人已经回答了..
  • 非常欢迎您的回答。我只是不知道如何对你和其他人公平...... ;-)
  • 谢谢,这个回答很有帮助
【解决方案2】:

浏览器通常会通过与页面一起发送的 HTTP 标头获取此信息。

例如,Last-Modified 标头告诉浏览器页面的年龄。浏览器可以向页面发送一个简单的 HEAD 请求以获取最后修改的值。如果它比浏览器缓存中的更新,那么浏览器可以重新加载它。

还有许多其他与缓存相关的标头(例如 Cache-Control)。签出:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

【讨论】:

  • 我认为他们是在谈论用户修改/填写页面上的表单,而不是修改实际页面本身。
  • 感谢代码爱好者,但情况正如@Xymotech 上面所解释的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多