![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
スクリプト部分に
function aaa(){
var path = prompt("ファイル名を入力:","");
location.href = path + ".html";
}
と記述しております。
HTMLに
<FORM>
<INPUT TYPE=button VALUE="閲覧" onclick="aaa();">
</FORM>
のようにフォームで書くと期待通りに動くのですが、
<A HREF="javascript:" onClick="aaa();">閲覧</A>
のようにリンク文字で書くと思うように飛びません。
(リンク先へ飛ばず元の画面のまま)
不備があるのでしょうか、それともリンク文字では不可なのでしょうか。
ご存知の方いらっしゃいましたら改善方法をご教授願います。
宜しくお願い致します。
No.7ベストアンサー
- 回答日時:
とりあえず
function aaa(){
var path = prompt("ファイル名を入力:","");
location.href = path + ".html";
return( false );
}
以上でご質問の問題点は解消できるでしょう。
原因はonClickイベントが評価されながらも戻り値が偽でない為に改めてタグの方が評価されている為です。
尚、回答は質問時に提示の関数に終了時に常に戻り値を偽として返している点が異なり
回答 #2 の方とは戻り値を返す条件が違います。
次に検討のポイントです。
JavaScript を用いるのですから無効の場合の配慮はどうしますか?
これによりそもそもどのタグを用いるかも違ってきます。
例えば JavaScript が有効なら入力文字列で処理し、無効なら OffJavaScript.html に飛ばすという考えなら
<A HREF="OffJavaScript.html" onClick="aaa();">閲覧</A>
と出来ます。もちろん aaa 関数の戻り値は常に偽です。
この例示の場合、JavaScript が有効の場合は onClick イベントにて偽が返ってきて HREF="OffJavaScript.html" は評価されません。
<A HREF="sample.html" onClick="return(false);">参考1</A>
上記の様に簡略化でき、この場合は JavaScript が有効の場合はいくら「参考1」をクリックしても何も起きません。
逆に JavaScript が無効な場合は onClickイベントは関係なくタグが評価され OffJavaScript.html や sample.html へ飛ぼうとします。
あとはその先に目的のページがあるかないか・・・。
上記を踏まえて質問で提示の
><A HREF="javascript:" onClick="aaa();">閲覧</A>
タグでのリンク先の記述も JavaScript の処理であり合わせて onClickイベントにて JavaScript の処理も記述・・・。
<A HREF="javascript:aaa();">閲覧</A>
これだけでも済むような・・・。
というか、A要素(タグ)を選ぶ理由が減り他の要素(タグ)で onClickイベントが使えれば良いだけの様な気が・・・。
<SPAN onClick="aaa();">閲覧</SPAN>
これでも同じ様な・・・。尚、aaa 関数の戻り値も影響しません・・・。
No.6
- 回答日時:
> <A HREF="javascript:void()" onClick="aaa();">閲覧</A>
void()のままだとエラーになります。これは、void(0)の記述ミスだと思います。また、void(0)に書き直したとしても、少なくともWinXP IE6では意図する動きをしないでしょう。
> <A HREF="#" onClick="aaa();">閲覧</A>
こちらはおおむねうまく動きますが、キャンセルを押したときに、#つきのアドレスに移動になってしまいます。それでもいいという条件付なら、この記述でもOKだと思います。
私も間違った回答をしたことがありますが、そのときには恥ずかしいと思いましたし、そのような軽率な回答をできるだけしないように心がけています。特にプログラムなど実際に動かせば正しいかどうか確認できることなので、コードを張る際には必ず動作確認をするようにしています。またそれがマナーだと考えています。
No.5
- 回答日時:
<A HREF="javascript:void()" onClick="aaa();">閲覧</A>
<A HREF="#" onClick="aaa();">閲覧</A>
という書き方があります
#4さんのように自分だけが正しいような高みから
見おろす発言はいかがなのものかとおもいますが。
No.4
- 回答日時:
アンカータグ(aタグ)についての理解が不足しているようですね。
アンカータグではhrefの記述とonclickの記述は併用できません。[href="javascript]と記述しているところから察するにやりたいことは、下記の記述の書き間違いと想像します。
<A HREF="javascript:aaa();">閲覧</A>
しかしこの質問に限らず、質問者の意図や解決法がよくわかっていない方が回答されることが多いようで、少し驚いています。
No.3
- 回答日時:
><A HREF="javascript:" onClick="aaa();">閲覧</A>
だと、「閲覧」という文字列をクリックしたら「javascript」へ行く命令ですよ?
同時にonClickが書いてあるから関数aaa()を呼び出すけど、その時は「javascript」へ飛んでいるので関数aaa()が呼び出されても無効ですね。
姑息な手段:
<a onClick="aaa();"><u>閲覧</u></A>
fontも組み合わせて色を変えると更に良いかも。
(ただマウスのポインタが指に変わらないのでNG)
↑秘密のリンクを作るのには良いよ
正統派の方法その1:
<a name="aaa"></aaa>を設定後
<A HREF="今いるページ#aaa" onClick="aaa();">閲覧</A>
で自ページのどこかへ飛ばしておく
(IEのver6だと、これでも動く)
正統派の方法その2:
function aaa(){
var path = prompt("ファイル名を入力:","");
location.href = escape(path)+ ".html";
}
で本文の<A>は正統派の方法1と同じにしておく
というのはいかが?
お試し下さい。
No.2
- 回答日時:
単純にアンカータグの際はオンクリック後の動作をカットしてあげればいいのではないでしょうか?
function aaa(){
var path = prompt("ファイル名を入力:","");
if( path ) {
location.href = path + ".html";
return( false ); ←重要
}
}
タグ部分にはreturnを追記
<A HREF="javascript:" onClick="return( aaa(); )">閲覧</A>
No.1
- 回答日時:
現在のページをindex.htmとした場合
<SCRIPT language="JavaScript">
<!--
function Check(){
flag=0;
psword=p_form.psw.value;
if(psword>0){
flag=1;
alert("入力文字列が違います。");
location.href="index.htm";
}
if((psword!="")&&(flag==0)){
location.href=psword+".htm";
}else{
alert("決められた文字列ではないので先に進めません。");
location.href="index.htm";
}
}
//-->
</SCRIPT>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『入力文字列 + .html』 に...
-
HTMLでブラウザを終了させる方法
-
サブウィンドウから、親ページ...
-
CSSのtransform: translate(-50...
-
htmlでテーブル内にテキストボ...
-
エクセルでサイズに合ったもの...
-
エクセルでサイズ指定でPOP...
-
Excel で等間隔で縦線を引きた...
-
HTMLフォームのSELECTの幅を一...
-
Microsoft1Officeの互換ソフト...
-
PDFへてのテキストボックスにて...
-
table内で画像と文字をセンター...
-
テーブルで3セル作った行の下に...
-
Excelで可視部分だけをWeb形式...
-
エクセル 画面表示拡大率によ...
-
マクロについて教えてください、、
-
Excelの列の幅(ピクセル)につい...
-
壁紙に複数の画像を使いたい
-
プリントアウト時、ページ内容...
-
aタグに直接style=""で:hoverを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
指定時間になったら、WEBサイト...
-
window.close()で閉じられない
-
javascriptでタイトルバーを非...
-
HTMLでブラウザを終了させる方法
-
window.openした時、親ウィンド...
-
サブウインドウを開くときのフ...
-
location.hrefの使用条件について
-
『入力文字列 + .html』 に...
-
小窓を表示させたい
-
プルダウンメニューからインラ...
-
【続】 ポップアップ表示の後の...
-
location.hrefで別窓にリンクを...
-
リンクを張り、別窓を表示され...
-
Javascriptを使用したサムネイ...
-
showModalDialogで動的にページ...
-
JavaScriptで画像を横移動
-
window.open _self でとんでく...
-
自動的に小窓を開く
-
トップページをもうひとつ作る...
-
子Windowの操作(親Window遷移後)
おすすめ情報