• 締切済み

『入力文字列 + .html』 に飛ぶリンクが作りたい

スクリプト部分に 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だと思います。 私も間違った回答をしたことがありますが、そのときには恥ずかしいと思いましたし、そのような軽率な回答をできるだけしないように心がけています。特にプログラムなど実際に動かせば正しいかどうか確認できることなので、コードを張る際には必ず動作確認をするようにしています。またそれがマナーだと考えています。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答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と同じにしておく というのはいかが? お試し下さい。

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.2

単純にアンカータグの際はオンクリック後の動作をカットしてあげればいいのではないでしょうか? function aaa(){ var path = prompt("ファイル名を入力:",""); if( path ) { location.href = path + ".html"; return( false );  ←重要 } } タグ部分にはreturnを追記 <A HREF="javascript:" onClick="return( aaa(); )">閲覧</A>

  • RZ350R
  • ベストアンサー率28% (439/1551)
回答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

  • ボタンリンクをしたいのですが・・・

    ボタンの形でリンクをしたいのですが、うまくできません。 <a>タグのテキストリンクならページが移動するのですが、 <a href="URL"><button>文字</button></a> は、ボタンがペコペコするだけで、 <form><input type="botton" value="文字" onclick="parent.main.location.href='URL'" title="文字"></form> は、ステータスバーにエラーが出ただけです。 何がいけないのか分からないし、他にどうすればいいのかもさっぱり分かりません。 IE6.0を使っていますが、IE依存タグは避けたいです。 ボタンリンクのやり方についてアドバイスをいただけないでしょうか。

  • リンクボタン

    ボタンを押してリンク先に飛ぶようにするには <form><input type="button" value="homeへ" onClick="location.href='home.html'"></form> とすれば可能ですがこれをJavaScriptを使わずに出来る方法はないものでしょうか? どうしても画像など使わずにボタンで実現させたいのですが。

    • ベストアンサー
    • HTML
  • ボタンで、リンクを、別ウィンドウで開く

    質問させていただきます。 ボタンで、リンクを、別ウィンドウで開くには どういうソースを書いたら良いのでしょうか? <FORM> <INPUT TYPE="button" VALUE="リンク" onClick="window.location.href='index.html'"> </FORM> だと、同一ウィンドウ内に開いてしまいますし・・・。 どうか教えてください。よろしくお願いいたします!

  • パスワードをIPする際見えないようにしたい。

    こんにちわ。 社内HPで、パスを付けて閲覧者を制限する ページを作りました。 正常に動作しているのですが、 パスをIPする際、伏字状にしたいのですが(●●●)どの様にしたら宜しいでしょうか? どなかたご指南下さい。。。 ウィンドウズXPを使用しています。 <script language="JavaScript"><!-- function myEnter(){ myPassWord = prompt("パスを入れてください",""); if ( myPassWord == String.fromCharCode(パス) ) location.href = String.fromCharCode(リンク先URL)+".htm"; else alert( "パスが違います" ); } // --></script> ------------------------------------------------ <form> この先は●●チーム専用です <input type="button" value="入場" onclick="myEnter()"> </form>

  • リンクを張ると上位に検索されるようになりますか?

    index.html から ページ1.html ページ2.html ページ3.html というリンクがあるのですが 各ページにindex.htmlへのリンクを張ると上位に検索されるようになりますか? その場合、<a href="sample.html">文字</a> ではなく、 <input type="button" value="文字" onclick="document.location = 'http://www.';" /> でもいいのでしょうか? ページ1.html ページ2.html ページ3.html はディレクトリの中に入っています。

    • ベストアンサー
    • HTML
  • リンククリックで文字列を他のフレームへ

    リンクをクリックすると他のフレームにテキストを渡したい。現状はボタンクリックで渡しています。渡す文字は<SCRIPT language=JavaScript>の部分に書かず、リンクの場所においておきたい。 (例) <A HREF="">東京</A> <A HREF="">大阪</A> <A HREF="">名古屋</A> この文字の部分に 東京の名物、大阪の名物、名古屋の名物などのテキストを含ませておき、そことクリックすると別のフレームのテキストボックスに入るようにしたい。 #どうか、アドバイスを。 <form action="javascript:void(1)" onsubmit="return false;"> <p><input type=text name=Title value="やっほ"> <input type=button onclick="parent.Frame3.document.fm1.Title.value=this.form.Title.value;" value="←コピー">

  • PHPの囲みかた

    以下のPHPが動かない、画面が真っ白になってしまうのですがなぜでしょうか? また<?php ?>でPHPは囲みますが、一画面で何回も囲んでも構わないでしょうか? <input name="button" type="button" onclick="location.href='/abc.php'" value="abc"> <?php  print ('<input type="button" value="aaa" onClick="location.href='/aaa.php'">'); ?> <input type="button" value="bbb" onClick="location.href='/bbb.php'">

    • 締切済み
    • PHP
  • HPボタンの長さが異なる。

    下のボタンが マックの「IE4.5」「IE5.0」「ネスケ4.7」だとちゃんと奇麗に中央に表示されますが、 Windows「IE4.5」「IE5.0」はボタンの長さが異なり ガタガタになります。 windowsでも奇麗に並べるにはどうしたらいいのでしょうか? よろしくご指導お願いいたします。 テストでアップしてあるURLですのでご確認してください。 http://watn.jp/test/ <HTML> <HEAD> <TITLE>++++</TITLE> </HEAD> <!------------------- 中身-------------------> <center> 下のボタンがマックの「IE4.5」「IE5.0」「ネスケ4.7」だと<br> ちゃんと中央に表示されますが、Windows「IE4.5」「IE5.0」は<br> ボタンの長さが異なりガタガタになります。 <FORM> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='kituke.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='sadou.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇◇ " onClick="window.location.href='buyou.html'"><br> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='ivent.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='tenjikai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇       " onClick="window.location.href='butai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇      " onClick="window.location.href='honten.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇◇     " onClick="window.location.href='yono.html'"><br> </FORM> </center> </BODY> </HTML>

  • ボタンをファイルにリンクさせたい

    お世話になります。 HTMLで <button type="button" name="button" value="button"> <font size="3"><b>テスト</b></font></button> <br><br> 上記のような感じでボタンを作りました。このボタンを あるファイルにリンクさせたい(URLでなくてファイル)のですが、 できますか? ネットで検索すると、URLの場合ですが <Form><Input type="button" value="テスト" onClick="location.href='http://test.jp/'"></Form> 上のように出ていますが、どこにどのようなタグを打てば いいのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML
  • ボタンをクリックして、リンクを開きたい

    ボタンをクリックして、リンクを開きたいのですが <input type="button" value="yahooを表示する" onClick="location=http://www.yahoo.co.jp/"> をしても何も起りません。 出来れば、新しいブラウザで開きたくて、 <A href="http://www.yahoo.co.jp/" target="HOGE">yahooを表示する</a> と同じように、ボタンをクリックして開きたいので、ご教授お願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう