html中a標(biāo)簽href='#'與href='###'的區(qū)別分享
發(fā)表時(shí)間:2024-05-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]首先,<a> 標(biāo)簽 + onclick={jscode} 是很常用的一種 js 運(yùn)用方式,而不使用 href=javascript:{jscode} 是為了兼容多種瀏覽器對(duì) <a> 標(biāo)簽的解釋和處理不同。其次,使用 <a> 標(biāo)簽 + onclick={jscod...
首先,<a> 標(biāo)簽 + onclick='{jscode}' 是很常用的一種 js 運(yùn)用方式,而不使用 href='javascript:{jscode}' 是為了兼容多種瀏覽器對(duì) <a> 標(biāo)簽的解釋和處理不同。其次,使用 <a> 標(biāo)簽 + onclick='{jscode}' 時(shí)經(jīng)常會(huì)加一個(gè) href='###',而有時(shí)這個(gè) href='###' 會(huì)被誤寫為 <a href='#'> 是因?yàn)槭褂谜邲]有理解 '#' 和 '###' 的區(qū)別。
簡(jiǎn)單地說,就是說如果想定義一個(gè)空的鏈接,又不跳轉(zhuǎn)到頁面頭部,可以寫href="###"。詳細(xì)解釋就是'#' 是有特定意義的,如果 '#' 后有內(nèi)容會(huì)被認(rèn)為是一個(gè)標(biāo)簽而從頁面找到相應(yīng)標(biāo)簽跳轉(zhuǎn)到該處,找不到時(shí)會(huì)跳到頁首, '###' 其實(shí)就是一個(gè)無意義的標(biāo)簽指定,也就是一個(gè) '#' 和不存在的標(biāo)簽 '##' 的組合,頁面中找不到命名為 '##' 的 <a> 時(shí)該鏈接就不會(huì)發(fā)生跳轉(zhuǎn),也就不會(huì)導(dǎo)致執(zhí)行 onclick 中的內(nèi)容時(shí)突然發(fā)生頁面跳到頁首的問題。'###' 只是一種使用者習(xí)慣,如果你愿意,可以隨便找一個(gè)跳轉(zhuǎn)不到的標(biāo)簽作為命名。說白了"###" 就是一個(gè)不是錨點(diǎn)的字符串 瀏覽器找不到也不會(huì)跳到頁首,原理就是依賴了網(wǎng)頁的報(bào)錯(cuò)機(jī)制,找不到就不做處理。
有些人說,不喜歡“###”因?yàn)樗麜?huì)改變鏈接。都是使用一直用javascript:void(0)或者javascript:。href="javascript:void(0);"但也有人說用href="javascript:void(0);"可能會(huì)有瀏覽器兼容問題。在做頁面時(shí),如果想做一個(gè)鏈接點(diǎn)擊后不做任何事情,或者響應(yīng)點(diǎn)擊而完成其他事情,可以設(shè)置其屬性 href = "#",但是,這樣會(huì)有一個(gè)問題,就是當(dāng)頁面有滾動(dòng)條時(shí),點(diǎn)擊后會(huì)返回到頁面頂端,用戶體驗(yàn)不好。
javascript:void(0)這種偽協(xié)議,少寫的好,如果你看過一些web標(biāo)準(zhǔn)的書就知道為什么了。 2.鏈接(href)直接使用javascript:void(0)在IE中可能會(huì)引起一些問題,比如:造成gif動(dòng)畫停止播放等,所以,最安全的辦法還是使用“####”。為防止點(diǎn)擊鏈接后跳轉(zhuǎn)到頁首,onclick事件return false即可。
以上就是html中a標(biāo)簽href='#'與href='###'的區(qū)別分享的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。