
これまでjavascript無効の人のために
<a href="test.html" onclick="test();return false;">link</a>
という感じで、無効の人はリンク先へ飛んで、有効の人はJavascriptを実行して処理する、といったコードを使っていました。
しかし、IE7では、onclickで false が帰ってきても、そのままリンクにいってしまうようで困っています。 IE6、Firefox2では思うように(onclickだけで止まる)動いてくれます。
もうこれは仕様のため、全面的に書き直さなければならないのでしょうか?
ご存じの方おられましたらご教示いただけると幸いです。
No.3ベストアンサー
- 回答日時:
test()の中でエラーになってるだけだと思ったのですが、、、?
test()はどの様な内容でしょうか?
<a href="aaa.html" onclick="return false;">検証</a>
これで動作が止まりますか?
IE6とIE7のチェックはどの様にされています?
パソコンを2台用意するとか、マルチブートしてるとか・・・
IE7 StandAloneを入れていると、動作がかなり変わるらしいですが、
インストールしていませんか?
http://tredosoft.com/IE7_standalone
今まで動いていたスクリプトがこれをインストールすると動かなくなったという話や、
CSSの表示の仕方も変わると聞いたことがあります。
もしそうなら、対策は、基本的にはIE7 Stand Aloneをアンインストールしかないと思います。
この回答への補足
test()はこちらの質問に投稿するために適当に書いただけなので、深い意味はありません。alert(123)でも同様になってしまいますので。
<a href="?test=1" onclick="return false;">Click me</a>
こんな形でテストしてみましたが、クリックすれば即リンクしていきます。
IE6とIE7のチェックはしていません。先週IE7にアップグレードするまえのIE6では同じコードで問題はありませんでした。
IE7は http://www.google.com/toolbar/ie7/intl/ja/ ここからダウンロードしてインストールしました。(ちょっとしたMSへの反抗^^;)本家とは何か違うのかもしれませんね。一度アンインストールしてIE6で再度確認したあと、本家版を入れてみようと思います。
驚いたことに、IE6にもどしても、同様の現象になってしまいました。
IE7にする前までは、firefox2とIE6の両方で検証しながら開発していたので、間違いなく正常に動いていたんですけど、IE7にアップグレードしたせいなのか、そのほかに手を加えたせいなのか、わかりませんが、設定か何か変わってしまったのかもしれません。
いろいろ設定をいじってみようと思います。
No.2
- 回答日時:
よくわからないですが、voidしてみては?
<a href="?test=1" onclick="void(alert(123));return false;">Click me</a>
この回答への補足
アドバイスいただきありがとうございます。
教えていただいたとおり、void をつけてみましたが、やはり変化はありませんでした。スクリプトの問題なのかブラウザの設定なのか、仕様なのか。新しいブラウザは難しいですね。
No.1
- 回答日時:
簡単なコードを書いて試してみましたが、IE7でそのような現象は確認できませんでした。
(return falseはちゃんと効く)IE7だけtest()の中でエラーが発生していてjavascriptの実行が中断された結果 hrefのurlに遷移しているのではないでしょうか?
この回答への補足
検証までしていただいて、ありがとうございます。
私のほうでももっと単純なコードで試してみました。
<a href="?test=1" onclick="alert(123);return false;">Click me</a>
これだと、123をalertして閉じたあと、?test=1 へ飛んでしまいました。この件についていろいろ検索してみたのですが、ほとんど情報もなく特殊な環境の時のみ発生するのかもしれませんね。
ちなみに、私の環境は、WindowsXP SP2 pro で IE7(7.0.5730.11IC) です。設定は比較的厳しくしている(ActiveXは常にダイアログなど)ので、なにか影響しているのかもしれません。alert()は動いているのでJavascriptは有効にはなっています。
原因がわかりましたので、ご報告させていただきます。
原因は、「インターネットオプション」の「詳細設定」の中の
「サードパーティ製のブラウザ拡張を有効にする」
という項目で、チェックを外すと return false が効くようになりました。
もっと自分で検証に時間をかけるべきでした。
ここでまとめてで申し訳ないですが、ご協力くださったsteel_gray様、yambejp様、taloo様、ありがとうございました。
もっともっとfirefoxのシェアが上がることを祈って締めさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript Javascriptで出来ること 1 2022/05/16 20:19
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
JavaScript ログアウト処理
-
リロードしないようにするには
-
チェックに応じて違うチェック...
-
JavaScriptde途中で、「exit」...
-
【javascript】 年齢計算
-
TEXTAREAに入力した改行コード...
-
Selectボックスの幅を自動で広...
-
【jsp/Java】チェックボックス...
-
hiddenのvalueの値を変えたい
-
value.replaceがうまく動作しま...
-
【javascript・PHP】プルダウン...
-
カーソルが当たった箇所に吹き...
-
ツールチップにテーブル左端列...
-
フォーム内で記入したクエリ送...
-
JSPとJavaScriptの連携について...
-
VBSでブラウザ上のテキストボッ...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
jQueryで特定のチェックボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
TEXTAREAに入力した改行コード...
-
COBOLの数字チェック
-
ツリービューのチェックボック...
-
2次元配列で2項目についてソー...
-
Visual Studioのデザインでの非...
-
onSubmit=の後ろは複数可能でし...
-
分岐数といえば
-
フォームの入力チェックをする...
-
ラジオボタンのNullチェック
-
ctrl+vを無効にする方法
-
度胸試しのJavaScript
-
JavaScriptde途中で、「exit」...
-
未選択のプルダウンメニューを...
-
IE7のJavascriptで return fals...
-
未入力のラジオボタンに、alert...
-
テキストボックスに数字しか入...
-
変数の値によってsubmit後の動...
-
リロードしないようにするには
おすすめ情報