URL地址中的#符號(hào)使用說明
更新時(shí)間:2011年02月12日 20:07:05 作者:
下面的內(nèi)容介紹了#號(hào)的使用,因?yàn)樵趗rl中多個(gè)#號(hào)代表不同的意義與區(qū)別。
一般我們想讓一個(gè)a標(biāo)簽點(diǎn)擊后執(zhí)行javascript代碼,有以下幾種寫法:
方式一:<a href="#" onclick="alert(1);">點(diǎn)擊一</a>
這種方式的缺點(diǎn)就是點(diǎn)擊后會(huì)在地址欄的URL后面加#號(hào),同時(shí)把頁(yè)面移動(dòng)到頂部,一般不建議使用。
方式二:<a href="javascript:void(0);" onclick="alert(1);">點(diǎn)擊一</a>
這種方式避免了方式一的缺點(diǎn),點(diǎn)擊后對(duì)頁(yè)面沒有任何影響。但是有一個(gè)致命的缺點(diǎn),就是在IE6下不能執(zhí)行form對(duì)象的submit()方法,也不能執(zhí)行跳轉(zhuǎn)語(yǔ)句,比如
<a href="javascript:void(0);" onclick="document.forms[0].submit();">點(diǎn)擊一</a>
<a href="javascript:void(0);" onclick="window.location.>點(diǎn)擊一</a>
在IE6下就無效,換成href=”#”就能在IE6下正常執(zhí)行。
方式三:<a href="###" onclick="alert(1);">點(diǎn)擊一</a>
點(diǎn)擊后雖然會(huì)在地址欄的URL后面加三個(gè)#號(hào),但是不會(huì)影響滾動(dòng)條,同時(shí)在IE6下也能執(zhí)行form對(duì)象的submit()方法與跳轉(zhuǎn)語(yǔ)句,算是一個(gè)比較折中的方法。
結(jié)論:我個(gè)人認(rèn)為如果執(zhí)行的javascript方法中需要提交表單、跳轉(zhuǎn)頁(yè)面,則用方式三,其它情況都用方式二。
另:這又附帶引出另一個(gè)問題,一般重新加載當(dāng)前頁(yè)面用如下的javascript代碼:
window.location.href = window.location.href;
但是當(dāng)URL地址中含有#時(shí),上述代碼無效,于是需要用如下代碼:
window.location.href = window.location.href.split('#')[0];
將URL地址以#符號(hào)分割開,取第一部分即可。
在很多情況下/index.htm#desc,后面的desc可能就是參數(shù),不容易的參數(shù)顯示不同的內(nèi)容,不是簡(jiǎn)單錨點(diǎn),而是ajax讀取內(nèi)容。
方式一:<a href="#" onclick="alert(1);">點(diǎn)擊一</a>
這種方式的缺點(diǎn)就是點(diǎn)擊后會(huì)在地址欄的URL后面加#號(hào),同時(shí)把頁(yè)面移動(dòng)到頂部,一般不建議使用。
方式二:<a href="javascript:void(0);" onclick="alert(1);">點(diǎn)擊一</a>
這種方式避免了方式一的缺點(diǎn),點(diǎn)擊后對(duì)頁(yè)面沒有任何影響。但是有一個(gè)致命的缺點(diǎn),就是在IE6下不能執(zhí)行form對(duì)象的submit()方法,也不能執(zhí)行跳轉(zhuǎn)語(yǔ)句,比如
<a href="javascript:void(0);" onclick="document.forms[0].submit();">點(diǎn)擊一</a>
<a href="javascript:void(0);" onclick="window.location.>點(diǎn)擊一</a>
在IE6下就無效,換成href=”#”就能在IE6下正常執(zhí)行。
方式三:<a href="###" onclick="alert(1);">點(diǎn)擊一</a>
點(diǎn)擊后雖然會(huì)在地址欄的URL后面加三個(gè)#號(hào),但是不會(huì)影響滾動(dòng)條,同時(shí)在IE6下也能執(zhí)行form對(duì)象的submit()方法與跳轉(zhuǎn)語(yǔ)句,算是一個(gè)比較折中的方法。
結(jié)論:我個(gè)人認(rèn)為如果執(zhí)行的javascript方法中需要提交表單、跳轉(zhuǎn)頁(yè)面,則用方式三,其它情況都用方式二。
另:這又附帶引出另一個(gè)問題,一般重新加載當(dāng)前頁(yè)面用如下的javascript代碼:
window.location.href = window.location.href;
但是當(dāng)URL地址中含有#時(shí),上述代碼無效,于是需要用如下代碼:
window.location.href = window.location.href.split('#')[0];
將URL地址以#符號(hào)分割開,取第一部分即可。
在很多情況下/index.htm#desc,后面的desc可能就是參數(shù),不容易的參數(shù)顯示不同的內(nèi)容,不是簡(jiǎn)單錨點(diǎn),而是ajax讀取內(nèi)容。
相關(guān)文章
淺析script標(biāo)簽中的defer與async屬性
最近在網(wǎng)上看到一個(gè)前輩在寫script標(biāo)簽的時(shí)候,居然同時(shí)寫了async和defer屬性,想著這是什么意思呢?所以決定深入的了解下這其中的學(xué)問,以下這篇文章就是個(gè)人在學(xué)習(xí)了之后的一些總結(jié)分析,有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11JavaScript實(shí)現(xiàn)數(shù)組在指定位置插入若干元素的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組在指定位置插入若干元素的方法,涉及javascript中splice方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04關(guān)于javaScript注冊(cè)click事件傳遞參數(shù)的不成功問題
在javaScript中給一個(gè)html元素注冊(cè)click事件處理函數(shù)時(shí),比如給該處理函數(shù)傳3個(gè)參數(shù)。可是不管是使用下面那種方式都不能給事件處理函數(shù)傳遞參數(shù)2014-07-07js實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能實(shí)例代碼(FileSave.js)
這篇文章主要給大家介紹了關(guān)于js實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能(FileSave.js)的相關(guān)資料,FileSaver.js是在客戶端保存文件的解決方案,非常適合在客戶端上生成文件的Web應(yīng)用,需要的朋友可以參考下2023-11-11JS去除字符串的空格增強(qiáng)版(可以去除中間的空格)
之前發(fā)了不少了去除字符串空格的代碼,但都是去除開始與結(jié)尾的,下面的這段代碼可以去除中間的。2009-08-08CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料
CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料,學(xué)習(xí)css與js的朋友可以參考下。2010-06-06