【问题标题】:Remove multiple items from history through JS通过JS从历史中删除多个项目
【发布时间】:2020-01-15 10:44:06
【问题描述】:

我有以下流程:

首页 => 设备 => 添加新 => 选择类型 => 配对

用户当然可以随时返回。现在配对完成后,我再次进入设备索引页面。
当用户按下该页面上的后退按钮时,它返回到 PAIR(我不想要),我希望它转到 HOME。

我在最后一步查看了 ReplaceState,它在重定向到设备之前通过主页更改 PAIR 页面。这样,当用户在 DEVICES 页面中按下返回时,他/她会返回主页(太棒了!),但是当用户再次按下返回时,他会到达我不想要的 SELECT TYPE。

如何在 PAIR 完成后从历史记录中删除 ADD NEW、SELECT TYPE 和 PAIR 页面?

旁注:我使用的是 Turbolinks 和 Rails,尽管我相信答案是 JS。

【问题讨论】:

    标签: javascript ruby-on-rails turbolinks


    【解决方案1】:

    AFAIK,您无法从浏览器历史记录中删除。但是你可以通过location.replace(参见https://stackoverflow.com/a/21820194/4486609)来阻止保存历史记录,或者做其他疯狂的事情,比如完全关闭返回按钮,但是......

    如果你有经典的网络应用程序(不是 SPA),那么你有一些系统可以防止用户在你的向导处跳转到任意步骤,如果你有它,它已经解决了这样的问题,不是吗?

    【讨论】:

    • 嗨,不是真的,我确实可以影响屏幕上可见的按钮,但我不能影响用户在浏览器中使用的后退按钮。
    • data-turbolinks-action="replace" 呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2015-06-09
    相关资源
    最近更新 更多