【问题标题】:How to reverse display=none on browser history back click?如何在浏览器历史记录中反向显示=无?
【发布时间】:2021-06-06 18:57:41
【问题描述】:

在我的页面上,我有一个 javascript 函数,它通过 pushState 更改当前 URL,并在用户单击文本“关闭”时隐藏特定 div。简化后的页面如下所示:

<div id='book'>
  <a onclick='close();'>close book information</a>
  Book Information
</div>
<div id='booklist'>List of all books</div>

<script>
function close() {
    /* ... */
    document.getElementById("book").style.display = "none";
    window.history.pushState({path:newurl},'',newurl);
}
</script>

所以 URL 是“book.php?id=1”,并在图书列表的顶部显示有关一本书的信息。如果用户单击关闭按钮,则 URL 将更改为“book.php”并且该书被隐藏。 但是,如果用户打开其他书籍,然后单击浏览器的后退按钮,则 URL 将变回“book.php?id=1”,但 display=none 仍处于活动状态。我怎样才能扭转以前做过的javascript?刷新页面也可以。我找到了this answer,但由于我无法更改正文标签,它对我不起作用。 我希望你能知道如何解决这个问题。

【问题讨论】:

    标签: javascript browser-history


    【解决方案1】:

    使用这个:

    document.getElementById("book").style.display = location.search ? "block" : "none";
    

    【讨论】:

    • 遗憾的是这不起作用。第一次打开页面时调用它。如果用户单击“关闭”,则参数将被覆盖,并且不会再次调用该函数。这本书一直隐藏。
    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 2012-04-20
    • 2012-05-10
    相关资源
    最近更新 更多