JS技巧:window.location.href出問(wèn)題分析思路
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
今天在公司給別的同事改bug,其中一個(gè)是window.location.href 不起作用 alert(”ok”) 上面的alert(”ok”);是不跳轉(zhuǎn)后用來(lái)調(diào)試的,頁(yè)面反映為現(xiàn)實(shí)url的值,但不進(jìn)行跳轉(zhuǎn),分析思路是window.location.href出問(wèn)題,所以嘗試了常用的調(diào)試方式,比如: 判斷是否是在包含頁(yè)里面:采用 window.parent.location.href=url; //這個(gè)完全否決,因?yàn)椴皇沁@種情況 采用 window.href location.href document.href均無(wú)效 于是跳出判斷函數(shù)內(nèi)部出錯(cuò),分析頁(yè)面出發(fā)該函數(shù)的事件,原來(lái)是這樣的: <a href=”javascript:void(0)” onclick=”changeSite(’200′)”> 發(fā)現(xiàn)問(wèn)題:<a href=”javascript:void(0)” ,于是修改為: <a href=”javascript:changeSite(’200′)”> 于是一切正常! 為什么會(huì)發(fā)生這個(gè)問(wèn)題呢?我們來(lái)看看javascript:void(0) : JavaScript中void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。 void 操作符用法格式如下: expression 是一個(gè)要計(jì)算的 JavaScript 標(biāo)準(zhǔn)的表達(dá)式。表達(dá)式外側(cè)的圓括號(hào)是可選的,但是寫(xiě)上去是一個(gè)好習(xí)慣。 (實(shí)現(xiàn)版本 Navigator 3.0 ) 你可以使用 void 操作符指定超級(jí)鏈接。表達(dá)式會(huì)被計(jì)算但是不會(huì)在當(dāng)前文檔處裝入任何內(nèi)容。 下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,當(dāng)用戶(hù)點(diǎn)擊以后不會(huì)發(fā)生任何事。當(dāng)用戶(hù)點(diǎn)擊鏈接時(shí),void(0) 計(jì)算為 0,但在 JavaScript 上沒(méi)有任何效果。 <A HREF=”javascript:void(0)”>單擊此處什么也不會(huì)發(fā)生</A> 下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,用戶(hù)單擊時(shí)會(huì)提交表單。 <A HREF=”javascript:void(document.form.submit())”> 對(duì)于jquery 和yui等前端框架來(lái)說(shuō)他們都有阻止默認(rèn)事件的方法,在調(diào)用window.location.href 等其他重定向方法之前阻止掉連接的默認(rèn)事件就可以哈 比如 $(’#changesite-panel a.city’).click(function(ev){ 該文章在 2010/8/17 23:12:00 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |