2009年7月28日 星期二

[Javascript] 詭異的IE6 href 換頁

話說~ ie6真是萬惡的淵藪.. 這個問題卡了整整兩天Orz..

原文是降子低~
< a href="javascript:void(0);" onclick="submitForm('Insert');">新增使用者< / a>

看起來一點問題都沒有=_=a..firefox也很正常..就這個link搞了很久居然都不動..
本來以為是沒有call到submit..可是jsp log也說跑了後面的頁面流程了...
就是該死的網頁沒換成下一頁~ 一度懷疑過struts, html onload..最後只能懷疑到這...擺明沒錯的東西了!!(這個用法寫了n百次, 都沒出過事, 怎麼會這麼怪一"一?)

後來改成...
< a href="#" onclick="submitForm('Insert');">新增使用者< / a>
Ohya...能動了..但是#會跳去網址列很醜阿Q_Q...

這時候請出貴公司的javascript大師解惑..

原來..在瀏覽器上, href的行為, 其實就等於是onclick 動作..所以有href沒click不會有事...
相當於這樣..
< a href="submitForm('Insert');" >新增使用者< / a>
但是這樣會把js function直接show在底下的status bar..比較不安全跟不好看...

但是當兩個同時存在時..則會執行onclick, 又執行href..就變成最後的結果是void(0);<---什麼都不做了Orz...

所以要怎麼搞才有最完美的解.. 就是在onclick最後加上return false;!!

< a href="javascript:void(0);" onclick="submitForm('Insert');return false;">新增使用者< / a>

這樣可以強迫瀏覽器在onclick事情做玩後跳掉..就不會跑到href了~
或者在submitForm function裡面的最後return false也可以..
但是要記得~ 只有return false有用...return true..href還是會執行的O.O/