Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从浏览器历史记录中删除当前页面_Javascript_Html_Html5 History - Fatal编程技术网

Javascript 从浏览器历史记录中删除当前页面

Javascript 从浏览器历史记录中删除当前页面,javascript,html,html5-history,Javascript,Html,Html5 History,我正在我的网站上建立一个文本编辑器,工作流程如下 在/list中,用户从列表中选择要编辑的条目,该列表会将他们带到/edit/[article\u id] 用户完成工作,然后单击提交 服务器处理该内容,并将它们重定向回/edit/[article\u id],现在它反映了已编辑的工作。服务器还会在页面上激活一条flash消息,指示编辑成功 此时,用户可能希望返回到/list,并单击浏览器的后退按钮。这将根据他们提交的次数将他们反复带回编辑器 我试着在页面上的某个地方放一个后退按钮,但很多用户只是

我正在我的网站上建立一个文本编辑器,工作流程如下

  • /list
    中,用户从列表中选择要编辑的条目,该列表会将他们带到
    /edit/[article\u id]
  • 用户完成工作,然后单击提交
  • 服务器处理该内容,并将它们重定向回
    /edit/[article\u id]
    ,现在它反映了已编辑的工作。服务器还会在页面上激活一条flash消息,指示编辑成功
  • 此时,用户可能希望返回到
    /list
    ,并单击浏览器的后退按钮。这将根据他们提交的次数将他们反复带回编辑器

    我试着在页面上的某个地方放一个后退按钮,但很多用户只是忽略了它

    我不希望通过AJAX发布提交,因为这也会影响flash消息系统


    我喜欢做的是,在用户提交时替换历史记录列表上的最后一个条目,而不更改其长度。可能吗?

    试试这个

    window.location.replace(url);
    
    使用
    replace()
    后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。

    使用窗口。关闭()

    注意:当前选项卡是隐含的。这相当于:

    window.close();
    
    也可以指定其他窗口

    因此:

    使用HTML:

    <a href="javascript:close_window();">close</a>
    
    
    
    或:

    
    

    此处返回false以防止事件的默认行为。否则浏览器将尝试转到该URL(显然不是)。

    因此,我应该在
    /list
    ?URL=window.location.hrefExcellent中使用
    window.location.replace()。尽管它很简单,但到底需要什么并不是问题所在
    
    function close_window() {
      if (confirm("Close Window?")) {
        close();
      }
    }
    
    <a href="javascript:close_window();">close</a>
    
    <a href="#" onclick="close_window();return false;">close</a>