2012-02-15 129 views
-1

我正在使用JavaScript和AJAX。其中一個AJAX函數在URL的末尾添加「#」符號。該功能的作品,但我想知道爲什麼只有這個功能添加該標誌,而不是其他功能。 「#」號能否給未來帶來一些問題?「#」登錄網址

+0

你自己寫了ajax函數嗎?或從圖書館?請更具體地說 – paislee 2012-02-15 19:22:11

+0

您是否使用JS框架?除非我們知道您正在使用哪些功能,否則我們無法確定。 – 2012-02-15 19:23:42

+0

提示:[... 15 /登錄網址#頁腳](http://stackoverflow.com/questions/9299815/sign-on-url#footer):P – Andrew 2012-02-15 19:23:56

回答

2
  1. 對URL的#標誌被稱爲哈希標誌和趨向於URL從頁面上的錨分開,這樣你就可以瀏覽到頁面的部分,而不僅僅是頂端的頁面。

  2. 在AJAX世界,這也可以用來保持當前頁面,你可以很容易地知道你來自哪裏,(如頁面加載異步)來到,所以你可以很容易地回去不使用history API(使用這種技術的jQueryMobile alpha版)

  3. http://domain.com/page2.htm#page1.htm一個網址,你可以很容易知道你使用document.location.hash

  4. 來到這裏,但通常是簡單的具有與該h的錨標記灰href<a href="#">click here</a>女巫normaly是一個簡單的技巧,讓anchor標籤知道行爲像一個鏈接,但無處可去......如果你不希望它被寫入你的網址,你只需要返回false所以錨鏈接不跳轉到#(女巫是當前頁)。

順便說一句,這不會以任何方式搞亂你的代碼或任何未來的代碼,這只是不好的做法。

+1

+1關於#4的註釋:在jQuery中,返回false將防止事件冒泡。要繼續冒泡但不導航到href屬性中的URL,可以使用[event.preventDefault()](http://api.jquery.com/event.preventDefault/)。 [這個問題](http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false)是一個很好的參考。 – grossvogel 2012-02-15 19:45:30

+1

@grossvogel我不想說任何關於JavaScript框架的東西,因爲大量使用** mootols **或任何非jQuery **,你所說的只是適用於jQuery。每個框架都會自己實現返回false ... – balexandre 2012-02-15 21:09:03

2

這很可能不是JavaScript加入#,而是你點擊的鏈接來觸發JavaScript。

很多人會做這樣的事情:

<a href="#" onclick="something()">text</a> 

這樣的文字會出現像一個鏈接,但點擊鏈接後會不會把用戶離開該頁面並且將執行一些JavaScript。這樣做的副作用是將#附加到URL上,並且用戶滾動到屏幕的頂部。

1

該URL上的散列符號(#)之後的內容稱爲碎片。

它最初是爲HTML文檔中的本地錨定(並且仍然使用)。

但是,它通常也被AJAX應用程序用來維護歷史狀態,以便在瀏覽器中使用後退按鈕。

例如,jQuery BBQ plugin允許您讀取/設置參數(類似於查詢參數,URL中的?之後的參數)並監視這些參數的更改,以觸發其他操作而無需重新加載整個頁面。

此外,對於<a />鏈接將被識別爲:link(以CSS表示法),它必須具有非空href屬性。通常使用href="#",因爲最後有和沒有它的URI是等價的。 (無論是在#之後,包括散列本身都不作爲頁面請求的一部分發送到服務器)。

1

#用於指定瀏覽器將視圖集中在頁面中特定的命名元素上。

例如:"#" sign on URL

此外,#後什麼也不會通過GET參數傳遞給服務器。