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.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エンコードしないと、おもいどおりにならない事がままあるそうな...
この回答へのお礼
お礼日時:2010/08/30 14:15
なるほど。詳しい解説ありがとうございます。
それにしても、ブラウザによって実行結果が変わってしまうのは困り者ですよね。
回答ありがとうございました。
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 でも再現できました。
お探しの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ランキング
-
リロード(追加)
-
Vba SelStart、SelLen教えてく...
-
1つのVBAコードをすべてのコア...
-
ブラウザからエクセルを開く方法
-
JavaScriptで、実行するたび値...
-
gas 全角数字を半角数字に変換
-
ASP(VBS) ←→ JavaScript の変数...
-
以下のコードを実行しても、オ...
-
初心者です。gulpでコンパイル...
-
リクエスト結果が一瞬しか表示...
-
javascriptからサーバサイドの...
-
小数点入力チェック
-
javascript 文字列の最後から1...
-
VBScript から JavaScript を呼...
-
eval関数?エラーについて
-
「終了していない文字列型の定...
-
クリックすると下に説明文が出...
-
ローカルのレジストリを読みたい
-
VB.NET2003 テキストボックスに...
-
MATLAB で 連番処理をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダを自動で開く
-
ページ遷移時にアコーディオン...
-
自作のJavaScriptを既存のペー...
-
VB.NETからWEBブラウザの操作に...
-
リンクを右クリックするとペー...
-
至急お願いします!javascript:...
-
C#の質問です。
-
javascriptでiframeを代用
-
IEで、return 0; をすると 画面...
-
”閉じる”リンクについて
-
PHPを使って作成したボタンをク...
-
C# ブラウザの自動クリック
-
表示ページによって、aタグ内の...
-
htmlから変数を渡すには?
-
onmousedownを自動で押して、イ...
-
サブウインドウをフルスクリー...
-
ホームページ 専用ページ 直リ...
-
ブラウザの「戻る」を押しても...
-
リロード(追加)
-
chomeでリンク先URLを取得したい
おすすめ情報