1 回答

TA貢獻1860條經驗 獲得超8個贊
有一個錨點
<a?href="somefunc()">Click?Me</a>
將被解釋為“嘗試導航到路由 somefunc()”。所以你會被送到http://www.example.com/somefunc()
。http:
您所在的當前頁面的協議在哪里。
The?javascript:
,很像 thehttp:
和 themailto:
和 thetel:
以及任何其他類似的前綴是要使用的協議。如果您將其關閉,則將其留給瀏覽器的默認行為。對于相對 URL(這是你寫的),它將默認為http:
(感謝 Barmar)
您不需要包括協議(默認情況下瀏覽器使用 HTTP)或端口(僅當目標 Web 服務器使用一些不常見的端口時才需要),但 URL 的所有其他部分都是必需的。
請參閱<a/>
標簽href
:
href
超鏈接指向的 URL。鏈接不限于基于 HTTP 的 URL——它們可以使用瀏覽器支持的任何 URL 方案:
包含片段 URL 的頁面部分
帶有媒體片段的媒體文件
帶有 tel: URL 的電話號碼
帶有 mailto: URL 的電子郵件地址
雖然 Web 瀏覽器可能不支持其他 URL 方案,但網站可以使用 registerProtocolHandler()
但是,如果您打算調用某些 JavaScript 函數,那么您href
無論如何都不應該使用,這就是目的onclick
,或者更好的是addEventListener()
,如果錨點不會“帶您到任何地方”,請使用 a<button/>
以獲得可訪問性。
錨元素經常被濫用為假按鈕,方法是將它們設置?
href
為#
或javascript:void(0)
以阻止頁面刷新,然后監聽它們的click
事件。這些虛假
href
值會在復制/拖動鏈接、在新選項卡/窗口中打開鏈接、添加書簽或加載 JavaScript、錯誤或禁用時導致意外行為。它們還會將不正確的語義傳達給屏幕閱讀器等輔助技術。使用一個
<button>
代替。通常,您應該只使用超鏈接導航到真實的 URL。
添加回答
舉報