IEのバグを見つけたんで報告しときます。
HTMLのaタグにJavascriptを仕込んで、hrefを無効化させてJavascriptで遷移を実現したいとします。
hrefの無効化には以下の方法があります。
1.hrefに#を指定する
<a href="#" onclick="send();">リンク</a>
2.hrefにjavascript:void(0)を指定する
<a href="javascript:void(0)" onclick="send();">リンク</a>
3.onclickに「return false;」を追加する
<a href="" onclick="send();return false;">リンク</a>
4.onclickで呼び出すfunction内でreturn false;をする
function send(){
window.open("xxxx.html");
return false;
}
<a href="" onclick="send();">リンク</a>
で、この内の4に関してはIEで無効化できませんでした。
どうやら解釈として、以下の状態になっているものと考えればいいそうです。
<a href="" onclick="false">リンク</a>
つまりfunctionから帰ってくるのは「return false」ではなく「false」が返ってくる訳です。
なんでhrefが無効にならないんじゃないかなーと。
この解釈に関してはソースが無いんであまり鵜呑みにしない感じで聞き流してください。
IEでfunctionにreturn falseをさせる場合、以下のように記述する必要があります。
function send(){
window.open("xxxx.html");
return false;
}
<a href="" onclick="return send();">リンク</a>
returnしてきた値を更にonclick内でreturnするんですな。
ちなみに環境はIE7でござい。
0 件のコメント:
コメントを投稿