簡體   English   中英

PushState 需要兩個“后退”,但隨后“前進”將停止工作

[英]PushState requires two "go back" but then "go forward" will stop working

我有一個用 vanilla JS 構建的非常基本的 SPA。 用戶可以使用兩個按鈕在頁面之間導航,例如:

buttonProfile.addEventListener("click", function () {
  window.history.pushState({}, "", "profile/");
  var updatePage = new Event("update-page");
  dispatchEvent(updatePage);
});

在應用程序的某處,我有一個事件偵聽器,它偵聽update-page以根據當前的 URL 刷新需要刷新的內容(無需重新加載頁面)。 一切正常。

但是,我注意到兩個奇怪的行為:

  • 如果用戶從頁面 A 開始然后移動到頁面 B,則用戶將需要 go 后退兩次(瀏覽器上的按鈕),以便 go 回到頁面 A。
  • 如果用戶從頁面 B 回到頁面 A,一旦他們回到頁面 A,瀏覽器上的“前進”按鈕將變為灰色。

編輯

如果它有幫助,我注意到當我使用其他人的具有類似實現的 SPA 時,我會遇到同樣的問題。 例如看這個簡單的演示: DEMO | 代碼

重現步驟:

  • 單擊關於,然后單擊聯系人,然后再次單擊關於,然后再次單擊聯系人。
  • 現在,如果您按一次返回,您將 go 返回到 About。 但是,如果您再次按下它,您將停留在 About 上。 您必須再次按下它才能移至“聯系人”,一旦這樣做,“前進”按鈕將被禁用。

編輯 2

我只是意識到,當我在隱身模式下運行瀏覽器時,我的網站和我在上面發布的網站都可以正常工作。 我的 Chrome 一定還有其他問題(盡管我不知道是什么)。

好的,我找到了。 這是Matter 官方 Chrome 擴展程序 不知道究竟是什么導致了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM