2017-08-09 63 views
0

我有一個網址,看起來像這樣如何刪除網址中最後一個斜槓後的內容,而無需重新加載頁面?

http://foo.com/Item/newItemName

該項目被保存到與該項目名稱的數據庫頁面上有些操作後。現在我想更換URL這樣

http://foo.com/Item/12345

我需要更新的窗口狀態,所以是可以更新使用window.history.replaceState法或類似的東西的網址?

+0

你在談論狀態,你在使用JavaScript框架嗎? –

+1

你甚至試圖自己做這個嗎?如果答案爲「是」,並且解決方案出現問題,則應發佈無法使用的代碼。 – mdziekon

+0

@JesusCarrasco我正在使用TypeScript框架。 – user3587180

回答

3

你在找什麼是pushState功能。

檢查這些文檔進行:https://developer.mozilla.org/en-US/docs/Web/API/History_API

此外,檢查出本教程:https://css-tricks.com/using-the-html5-history-api/

pushState功能是超級方便。

+0

感謝您的回答。雖然push狀態並不是用newItemId代替newItemName。我錯過了什麼嗎? – user3587180

+0

注意添加一些代碼,它聽起來像你正在替換url的狀態而沒有加上當前的url。 –

0

應該可以這樣做:

history.pushState({}, null, newUrl); 

哪裏newUrl是新的URL應該替換當前的一個。請注意,這只是HTML5。

0

我會使用replaceState而不是pushState,因爲您不想在用戶的瀏覽器歷史記錄中創建新條目。

history.replaceState(
    '{ foo: "bar" }', 
    'Some new title', 
    'http://foo.com/Item/12345' 
); 
相關問題