Internet Explorer 7


IE7 Javascript(Jscript)の return false でリンクをエスケープできない



IE7上のJavascript(マイクロソフトはJscriptと呼んでいる)を使用して、onclickでスクリプトを呼び出した際、return falseでhrefをエスケープしようとしてもそのままリンク先へ飛んでしまうことがある。

<a href="foo.html" onclick="window.open('foo.html', '_blank'); return false;">hoge</a>

例えば上のソースでは、スクリプトが無効の場合 foo.html へ飛び、スクリプトが有効の場合は新規ウィンドウで foo.html を開いてそのまま終わる(もとのウィンドウに表示されている内容は変化しない)、という動作を期待している。
しかしスクリプトを有効にしたIE7で「hoge」をクリックすると、新規ウィンドウで foo.html が開き、もとのウィンドウ内容も foo.html になってしまうことがある。
バグか仕様かは不明だが、ソース側でこの挙動を期待通りにすることができるかどうかも不明。
ただ、サードパーティ製のブラウザ拡張がこの挙動の原因になっていることがあり、その場合はこの機能を切ることで期待通りの動作になる。
もっとも、ユーザー側での操作を期待するわけなので、根本的な解決にはならない。



01) [ツール]をクリック
02) [インターネットオプション]をクリック
03) [詳細設定]をクリック
04) [サードパーティ製のブラウザ拡張を有効にする]のチェックを外す
05) [OK]をクリック
06) IEを再起動する




[ 戻る ]