历史记录和通过JavaScript修改的HTML

History and modified HTML by JavaScript

本文关键字:修改 HTML JavaScript 记录 历史      更新时间:2023-09-26

当页面被JavaScript修改时,浏览器历史记录遇到了一个小问题。

如何复制

  1. 已打开包含可删除元素的页面。然后我点击删除按钮,该按钮使用ajax和jquery.remove()触发JavaScript
  2. 然后我点击一些链接打开另一个页面
  3. 在新页面上,我将点击浏览器后退按钮
  4. 我在页面上删除了数据库中实际上不存在的元素

解决方案是什么?清除浏览器历史记录?(我可以吗?)

解决方案

感谢Endy和消息来源,我带来了一些解决方案:

  • 在HTML模板中创建一个名称已删除的输入[类型=隐藏](无论什么)

  • 创建可以使用唯一ID 删除的元素

  • 何时触发删除操作,添加唯一ID以删除输入

    var deleted=$("input[名称=已删除]");deleted.val(deleted.vl()+id+")

  • 在文档准备就绪时创建检查器,该检查器删除元素

工作原理浏览器会自动记住添加到输入中的值,因此当页面从缓存中显示时,它就有了值,并且文档准备就绪就会触发

代码:

var deleted     = $("input[name=deleted]");
if (deleted.length > 0 && deleted.val() != "") {
    var deletedInput    = deleted.val();
    var deletedArray    = deletedInput.split(";");
    for (var i = 0; i < deletedArray.length;i++) {
        if (deletedArray[i] != "") {
            $("#photo"+deletedArray[i]).remove();
        }
    }
 }

您无法清除浏览器历史记录。你可以做的是总是在你删除内容的页面上强制使用Javascript。

window.history.forward();

或者,更好的做法是,在返回时修改页面,使其与数据库同步。