我正在建立一個網頁,其中有一種目錄,它顯示了當前項目及其描述,以及其他項目的縮略圖,如果我點擊不同項目的縮略圖,我有一些腳本來改變描述和大圖像到所需的項目。問題是我希望這反映在URL中,以便用戶可以將URL作爲鏈接發送給其他人以顯示所需的項目。但我還沒有找到一種方法來更改網址,而無需重新加載頁面,對於美學,我不想重新加載頁面。 任何想法如何做到這一點?更新的網址沒有明顯的重新加載
回答
解決方法是使用location.hash
。另外,要正確實施它,您可能需要閱讀谷歌的這篇文章:Making AJAX Applications Crawlable
好吧,給你一個線索:你實際上不能改變URL。 (如,windows.location
)雖然,你可以改變的是散列。玩轉javascript變量window.location.hash
。然後繼續閱讀http://code.google.com/web/ajaxcrawling/docs/getting-started.html。使用位置散列的兩個很好的示例是http://facebook.com和http://sinonimai.lt/。 (後者是我的個人項目,雖然它會簡單得多,爲您分析它,而不是Facebook)的
通常,當前廣泛兼容的方式是使用散列,如:
http://myniftystore.com/catalog#11321R-red-shirt
然後
http://myniftystore.com/catalog#11321B-blue-shirt
然後
http://myniftystore.com/catalog#95748B-blue-slacks
...當你瀏覽項目。您可以通過分配location.hash
屬性來更改頁面上的散列,而無需重新加載。這要求您首先使用一些客戶端腳本來確定用戶首次訪問URL時顯示的內容(通過檢查location.hash
)。
谷歌有一個proposal瞭如何使這些東西可以抓取。就個人而言,我認爲他們通過要求奇怪的hashtag(#!xyz
而不僅僅是#xyz
)真的搞砸了它,但如果它是我或Google,我想我知道誰會贏。 :-)
灌進派克有整個history API,但支持不是在地面上很厚,但(尤其是不 — 咳嗽 —某些供應商)。
沒有可靠的(跨瀏覽器)的方式來更改地址欄中的URL而無需重新加載頁面 - 改變window.location.href(我想象的是你想要做的)的行爲告訴瀏覽器重新加載頁面(即使在某些瀏覽器中,window.location.href = window.location.href;
也會這樣做)。
我認爲你必須在頁面上放置一個[鏈接到這個頁面]元素並改變它 - 你可以很容易地用當前的URL填充它在服務器端或者使用window.onload
函數並且在與您一直在使用element.value
或element.innerHTML
(取決於您選擇包含鏈接的元素的類型)相同。
您可以使用散列(請參閱window.location.hash屬性)執行此操作,但這可能會以編程方式混亂。
- 1. 沒有頁面重新加載的動態網址更改
- 2. 重新加載的dojo網格沒有在div中更新
- 3. jQuery:加載方法 - 重新加載頁面的特定部分沒有網址?
- 4. 點擊網址欄上沒有重新加載瀏覽器
- 5. $ state.go重新加載和更新網址與動態參數
- 6. 更新頁面和網址,無需重新加載
- 7. 顯示新的WordPress的帖子沒有重新加載頁面
- 8. 如果沒有頁面重新加載,則無法更改網址
- 9. 重新加載后角度2網址的更改
- 10. 可能更新cookie中的JavaScript沒有頁面重新加載?
- 11. 如何更新沒有頁面重新加載的Django頁面?
- 12. 更新沒有頁面重新加載的div
- 13. 在不重新加載頁面的情況下更新瀏覽器的網址
- 14. 導航到JavaScript中的新網址,但強制重新加載?
- 15. best_in_place gem,查看不顯示更新的編輯沒有頁面重新加載
- 16. 如何更新地址欄中的網址,但不重新加載到該網址?
- 17. JSF commandLink沒有更新網址正確
- 18. 更改網址並更新頁面內容,無需重新加載
- 19. 更改網址並更新頁面內容而無需重新加載
- 20. 更改html內容和網址,無需重新加載頁面
- 21. 更改網址而無需重新加載
- 22. 更改網址而無需重新加載頁面
- 23. 更改網址並重新加載後$ location.search()
- 24. jQuery - 如何更改網址而無需重新加載?
- 25. HTML:更改網址而不重新加載頁面?
- 26. Twitter如何更改網址而無需重新加載頁面?
- 27. 重新加載()沒有更新EF實體
- 28. 更新Shinygooglevis圖表沒有完全重新加載
- 29. 如何在Rails Minitest中刷新(重新加載)當前網址?
- 30. Dojo contentPane從網址重新加載新內容
可能的重複項:http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page http://stackoverflow.com/questions/3338642/updating-address-bar-with -new-url-without-hash-or-reloading-the-page http://stackoverflow.com/questions/4371705/how-to-rewrite-url-without-refresh-like-github-com http:// stackoverflow .com/questions/5895151/can-i-change-the-url-string-in-the-address-bar-using-javascript http://stackoverflow.com/questions/4973777/how-does-github-change- url-but-not-re-loaded – JJJ