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

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

為什么在錨標簽的 href 屬性中使用“javascript:function()”

為什么在錨標簽的 href 屬性中使用“javascript:function()”

GCT1015 2023-03-18 16:57:37
我有這樣的代碼,我想調用一個返回網站鏈接的 JavaScript 函數。我希望哪個鏈接成為 href="" 屬性的值。所以在某個地方我得到了這樣做的解決方案。但是沒有定義為什么要這樣做。這是我的代碼。我想知道為什么在 href 屬性中調用 javascript 函數要寫成 href="javascript:functionname()" 而不是 href="functionname()"。function hyperlinker(){  document.location.href="https://www.google.co.in";  }<a href="javascript:hyperlinker()"> click to get new page </a>
查看完整描述

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。


查看完整回答
反對 回復 2023-03-18
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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