亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery的:更改URL地址而不重定向?

jQuery的:更改URL地址而不重定向?

慕斯王 2019-11-26 11:27:20
如何在不重定向頁面的情況下更改URL地址?例如,當我單擊下面的鏈接時:<a href="http://mysite.com/projects/article-1" class="get-article">link</a>我將從鏈接中獲取URL:var path = object.attr('href');如果我在下面這樣做,頁面將被重定向:window.location = path;我想做一個類似本網站的操作,當您單擊圖像時,ajax調用將獲取請求的頁面,并且窗口上的URL地址也將更改,因此它具有您單擊的路徑。
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

注意:history.pushState()現在受支持-請參閱其他答案。


您不能在不重定向的情況下更改整個url,而是可以更改hash。


該散列是#符號后進入的URL的一部分。最初的目的是將您(本地)定向到HTML文檔的各個部分,但是您可以通過javascript讀取和修改它,以使其像全局變量一樣使用。


如果應用得當,此技術可通過兩種方式使用:


瀏覽器歷史記錄將記住您執行的每個不同步驟(因為url + hash更改了)

您可以有一個地址,該地址不僅鏈接到特定的html文檔,而且還為您的javascript提供了有關操作的線索。這意味著您最終指向了Web應用程序內的狀態。

要更改哈希,您可以執行以下操作:


document.location.hash = "show_picture";

要監視哈希更改,您必須執行以下操作:


window.onhashchange = function(){

    var what_to_do = document.location.hash;    

    if (what_to_do=="#show_picture")

        show_picture();

}

當然,哈希只是一個字符串,因此您可以使用它做幾乎所有的事情。例如,如果您使用JSON對其進行字符串化,則可以將整個對象放在其中。


有非常好的JQuery庫可以執行高級操作。


查看完整回答
反對 回復 2019-11-26
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

該站點利用了網址的“片段”部分:“?!敝蟮膬热?。瀏覽器不會將它作為GET請求的一部分發送到服務器,但可以用于存儲頁面狀態。因此,是的,您可以更改片段而不會導致頁面刷新或重新加載。頁面加載后,您的JavaScript會讀取此片段并適當地更新頁面內容,并根據需要通過Ajax請求從服務器獲取數據。要讀取js中的片段:


var fragment = location.hash;

但請注意,此值的開頭將包含“?!弊址?。設置片段:


location.hash = "your_state_data";


查看完整回答
反對 回復 2019-11-26
  • 3 回答
  • 0 關注
  • 1639 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號