我使用:target選擇器在css3中創建圖像滑塊。我有一個正在執行這一行的JavaScript如何不保留html定位器的歷史記錄
window.location = "#image" + image;
的問題是,如果我點擊我的瀏覽器的後退按鈕,它顯示了滑塊的先前圖像下一個和上一個按鈕。我想要後退按鈕轉到上一頁,而不是上一頁。
感謝您的幫助
我使用:target選擇器在css3中創建圖像滑塊。我有一個正在執行這一行的JavaScript如何不保留html定位器的歷史記錄
window.location = "#image" + image;
的問題是,如果我點擊我的瀏覽器的後退按鈕,它顯示了滑塊的先前圖像下一個和上一個按鈕。我想要後退按鈕轉到上一頁,而不是上一頁。
感謝您的幫助
使用History API:
history.replaceState({}, document.title, "#image" + image);
history.replaceState()操作酷似history.pushState()除了replaceState()修改當前的歷史條目,而不是創建的一個新的。
當您想要更新當前歷史記錄條目的狀態對象或URL以響應某些用戶操作時,replaceState()特別有用。
我試過了,但它沒有觸發目標選擇器 –
@ Marc-AndréTherrien對不起,我錯過了它。我認爲沒有辦法使用':target'來避免瀏覽器歷史記錄。 – Pavlo
我不這麼認爲,我可能會改變整個事情 –
window.location.replace("#image" + image);
此做一個簡單的重定向,而不將其添加到歷史。
MDN:https://developer.mozilla.org/en-US/docs/Web/API/Location.replace
前面的問題:What's the difference between window.location= and window.location.replace()?
這不適用於:目標選擇器 –
SOOOO,究竟爲什麼你改變了URL的主題標籤,如果你不需要#標籤的歷史? –
以及最簡單的事情將停止更改網址,並找到另一種方式來滑動圖像 – Bobby5193
我同意,我可能會將其更改爲一個jQuery的滑塊,而不是css3 –