No.3
- 回答日時:
そおいうことでしたか、対策は
<a href="javascript:void(0);" onclick="func();"> click me ! </a>
ですね。
回答ありがとうございました!
今回はどうしても<a>を使う必要があったので、参考になりました。
自分的には、すごく納得しました。
(今まで、href="#" とするのがどうも納得がいきませんでした)
javascriptはできるだけonclickに書くようにした方がいいですね。
ありがとうございました
No.4ベストアンサー
- 回答日時:
hrefで実行したいならvoidで受けた方がよいですね。
普通は、onclickで処理すると思いますが・・・
<script>
function func1(){
alert("hello");
return false;
}
function func2(){
alert("hello");
return true;
}
</script>
<a href="javascript:void(func1())"> func1-1 </a><br>
<a href="#" onclick="return func1()"> func1-2 </a><br>
<a href="javascript:void(func2())"> func2-1 </a><br>
<a href="#" onclick="return func2()"> func2-2 </a><br>
※この場合2-2だけがページの遷移が発生します。
No.5
- 回答日時:
質問者さんの書かれている内容は下記と同じです。
<p><a href="javascript:0">javascript:0</a></p>
<p><a href="javascript:false">javascript:false</a></p>
<p><a href="javascript:true">javascript:true</a></p>
> また、その対策も教えてください。
この場合、a要素である必然性はないので、span要素に変更するのが良いと思います。
<span onclick="func();">func</span>
> ちなみにIE8で、return false; でも同じ現象が起こり、0, false 以外ではそのような現象は起こりませんでした。
私の環境では、true でも再現できました。
No.6
- 回答日時:
どうしてこのようなことが起こるのでしょうか?
=>理由も一応見つけました。
(Gecko系ブラウザーの仕様ですが、IEもたぶん同様)
https://developer.mozilla.org/en/JavaScript/Refe …
「When a browser follows a javascript: URI, it evaluates the code in the URI and then replaces the contents of the page with the returned value, unless the returned value is undefined. The void operator can be used to return undefined. For example:」
つまり、<a href=#javascript: は、
javascript:の後ろの部分をjavascriptとして実行し、コンテンツをリターン値に
置き換える。ただし、リターン値がundefinedの場合は除く
という事でした。
従って、void(0)というのは、常にundefined を返しますから、No.2の対策でOK
だと思います。
ちなみに、<a href=#javascript:~に、ごちゃごちゃSCRIPTを書くと時は、
URIエンコードしないと、おもいどおりにならない事がままあるそうな...
なるほど。詳しい解説ありがとうございます。
それにしても、ブラウザによって実行結果が変わってしまうのは困り者ですよね。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Chrome(クローム) グーグルクロムをマイクロソフト・エッジに切り替える方法 2 2022/06/20 10:08
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Windows 10 パソコン初期化の件です 2 2022/06/05 11:05
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダを自動で開く
-
自作のJavaScriptを既存のペー...
-
VB.NETからWEBブラウザの操作に...
-
ページ遷移時にアコーディオン...
-
JavaScriptで ブラウザの閉じる...
-
1つのVBAコードをすべてのコア...
-
if(1){...}とはどういうことで...
-
gas 全角数字を半角数字に変換
-
JSPの処理の途中で、JavaScript...
-
javascriptでsjisの文字列からu...
-
VC#でテキストボックスに変数の...
-
ローカルのレジストリを読みたい
-
PowerPointで時計表示
-
VB.NET2003 テキストボックスに...
-
デザイン時のVisible=Falseは実...
-
VBScript から JavaScript を呼...
-
amazonの商品画像拡大のようなj...
-
条件に一致しない行を全て削除...
-
あるurlが存在する(?)かどう...
-
エクセル2010のvbaについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダを自動で開く
-
JAVASCRIPTでページ転送する方法
-
PHPを使って作成したボタンをク...
-
自作のJavaScriptを既存のペー...
-
表示ページによって、aタグ内の...
-
C#の質問です。
-
至急お願いします!javascript:...
-
ホームページ 専用ページ 直リ...
-
ページ遷移時にアコーディオン...
-
VB.NETからWEBブラウザの操作に...
-
ページ横スクロールでjQuery li...
-
Javascriptのカウントダウンに...
-
SVGでダブルクリックされた時に...
-
onmousedownを自動で押して、イ...
-
C# ブラウザの自動クリック
-
”閉じる”リンクについて
-
フレーム名を読んで、targetを...
-
「google apps script」情報取...
-
リンクを右クリックするとペー...
-
リンクからPOST送信を、右クリ...
おすすめ情報