[英]Replace Window History title with Javascript
我在解決方案中使用了history.replaceState(null, "historyTitle", "url")
來將頁面的URL替換為更易理解的內容。 我面臨的問題是,盡管它替換了URL,並且在瀏覽器中導航回到了正確的頁面,但在chrome中似乎忽略了"historyTitle"
部分-而是將整個URL添加為頁面中的位置窗口歷史記錄,而不僅僅是使用標題。 如何克服此問題,以便在瀏覽器歷史記錄中針對我所到達的特定頁面顯示“ historyTitle”?
小編輯:我將此與我在MVC中設置的自定義路由結合使用,因此,即使更改標題,然后刷新頁面,MVC路由器仍會導航到正確的頁面。 這只是chrome中的窗口歷史記錄(ctrl + H)中的標題,無法正確更新標題並轉儲該記錄中的整個頁面URL。
確實這是一個錯誤,盡管現在已經有兩年了。 問題在於一些不清楚的規范和涉及document.title
和后退/前進的復雜性。
請參閱Webkit和Mozilla上的錯誤參考。 Opera在介紹History API時也表示,它沒有使用title參數,並且可能仍然沒有使用。
目前,Opera的實現中未使用pushState和replaceState的第二個參數(歷史條目的標題),但可能只有一天。 潛在解決方案
我看到的唯一方法是更改title元素並改用pushState:
document.getElementsByTagName('title')[0].innerHTML = 'bar'; window.history.pushState( {} , 'bar', '/bar' );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.