2009-12-28 108 views
0

我有一個關於href鏈接的問題,試着用google搜索它,但是在這方面找不到很多信息。我有這樣的HREF鏈接:href鏈接到#問題

<a href='#' onclick='openSerialWindow();return false;'><h:outputText value="#{i18n.regFindSerialNumber}" /></a> 

以前#由page.htm,它應該鏈接到並導致一個錯誤,當用戶右鍵點擊該鏈接並選擇「在新窗口打開/替換標籤'。使用#替換page.htm後,它可以正常工作,甚至可以在r/c中打開它,並在新的選項卡/窗口中打開。

如果用戶只需點擊鏈接上面的兩個方法工作(#和page.htm),所以我想知道什麼是#的真正含義?

謝謝。

回答

2

#是一個錨點散列並指向當前頁面的頂部。

您可以在文檔中創建錨點,如下所示:<a name='anchor'></a>然後通過將#anchor添加到頁面的URL來跳轉到它們。瀏覽器將跳轉到該位置而不重新加載。

如果鏈接到page.htm產生了錯誤,那麼page.htm是不正確的鏈接。

href屬性只有在沒有Javascript的情況下作爲回退。 Javascript的return false;阻止鏈接的執行。鏈接到#意味着如果javascript被關閉,則通過單擊鏈接將不會發生任何事情,除非瀏覽器將跳轉到頁面的頂部。

+2

此外,除非**需要** javascript的工作(例如ajax鏈接),你應該總是使用有效的網址作爲'href'和jsut從你的onclick返回false - 這樣他頁對於那些因爲某些原因沒有JS的人而言會降級。 – prodigitalson 2009-12-28 20:52:45

+0

鏈接到page.htm只有當用戶右鍵單擊並選擇'在新標籤頁/窗口中打開'時,纔會出現404錯誤,如果鏈接是簡單的點擊就沒有錯誤,它工作得很好。而用#它可以同時工作。 – msharma 2009-12-28 21:15:00