• ベストアンサー

パスワード制限スクリプト。ウィンドウを閉じるスクリプトについて

WEBページにパスワード制限をかけたいと思います。 今回JavaScriptなので、めちゃめちゃ強固なものではありませんが。 下のようなスクリプトを用意しました。 ------------------------ pass = prompt("パスワードを入力して下さい",""); if(pass != "XXXXX") { parent.top.window.close(); } ------------------------ これでも動くのですが、 パスワードが不正なとき、画面を閉じようとする設計です。 ただし、その時IEだと、 「画面を閉じようとしています」と聞かれ、 「はい」「いいえ」の選択肢がでます。 「はい」・・・もちろん閉じます。 「いいえ」・・画面そのまま残ります。 これじゃ意味ないんです。 「いいえ」を選んでもとにかく閉じさせる方法が必要なんです。 「いいえ」を選択しても、繰り返し繰り返し「閉じようとしています」と聞かれるような。 なにかいいスクリプトはないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#10188
noname#10188
回答No.3

parent.top.window.close(); と記述してありますので、おそらくフレームを利用した画面構成なのだと思います。 記憶違いでなければ、IEの仕様でダイアログが表示され ることがあったと思いますので、この辺りを調べれば いいアイデアが見つかるのでは? # 外したらごめんなさい 余談ですが: JavaScriptでパスワードチェックを行うようであれば、MD5やSH-1などのハッシュ値を利用した方が、今より安全性を考慮した作りになりますよ。

その他の回答 (2)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

パスワードの制御Windowをwindow.open()で開けばclose()の時の確認画面は出ないはず。

回答No.1

まず、JavaScriptでパスワードをかけても、IEの場合で、表示(V)のソース(C)で相手からはそのパスワードが丸見えなので意味が無いですよ。殆どのブラウザでソースが表示できます。 それに、IE限定のサイトなら分かりますが、仮にIEをお望みの挙動で閉じることができても他のブラウザに対して有効にはなりません。 そしてこの設計には、不正アクセス者に対してのドリブンしか想定されていないようですが、 正規のユーザであっても、パスワード入力ミスをすることがあります。 その際に、一瞬で閉じてしまったら、何が原因かが伝わらなくなりますよ。

関連するQ&A

  • 画面を閉じる。「いいえ」の場合。。

    こういう画面を閉じるスクリプトを実行した場合、 parent.top.window.close(); 「閉じようとしています。」 「はい」「いいえ」の選択を確認してきますね。 「はい」ならもちろん閉じる。 「いいえ」なら、画面が残る。 本来はこういう動きをすると思います。 最終的には、 「はい」を選択した場合には普通に閉じる。 「いいえ」を選択した場合に、 別のfunction()へ飛ばしてしまう仕組みを作りたいのです。 因みに飛ばした先のfunction()は、簡易パスワード認証です。 今考えているのはこんな感じですが、 parent.top.window.close(); abc(); 「はい」でも「いいえ」でも、abc()へ飛びます。 画面を閉じた場合でも、abc()が実行されてしまうのが困ります。 閉じた場合は、大人しく閉じてくれるスクリプトの例を教えてくれませんか?

  • 親ウィンドウの非表示

    JavaScriptで、 「アドレスバー・ツールバー等非表示でトップ画面を開く」 を以下のように1画面クッションをおいて うまく非表示になったのですが、 クッションをおいた画面が2秒ほど表示されてしまいます。 うまく非表示にする方法をご存知のかた教えてください。 <script language="javascript"> <!-- window.open("","","menubar=no"); if (document.all&&(navigator.userAgent.match(/MSIE (\d\.\d)/),RegExp.$1)>=5.5) {   var w=window.open("","_top")   w.opener=window   w.close() } else {   window.close() } //--> </script> よろしくおねがいします。

  • ジャバスクリプト

    お世話になります。 今、私はジャバスクリプトに挑戦しています。 不明な点が発生しました、よろしくご指導ください。 本文 このプログラムは、Webページの閲覧をパスワードによって制限するというものらしいのですが、 私は、htmlソースの<body></body>内に次のようなjavascriptプログラムを入力しました。   <SCRIPT LANGUAGE="JavaScript"> <!-- function passWordCheck(){ pass=prompt("パスワードを入力してください。",""); if (pass !="") { location.href = pass + ".htm"; }else if(pass == null){ passWordCheck(); } } //--> </SCRIPT> <P ALIGN="center"><STRONG>パスワードを入力して入室してください。</STRONG></P> <P ALIGN="center"> <INPUT TYPE="button" VALUE="入室する" onclick="passWordCheck()"> </P></TD> </TR>   そこで私は、結果を確認するためブラウザを表示させ、ブラウザ上で表示された(入室する)というボタンをクリックしました。すると(Explorerユーザープロンプト)という小さな画面がでてその中には、(パスワードを入力してください)とあるのです。 私は、パスワードとして表示させたいWEBページのURLを入力しました。 すると、ERRORとして(指定されたファイルは見つかりません)として、 表示を希望するページが表示されません。 何とかしてこのプログラムを活用させたいのですが、よろしくご指導くださいますようお願いします。

  • ジャバスクリプト

    よろしくお願いします。 この度、初めてジャバスクリプトに挑戦しました。プログラムをhtmlの<body></body>タグ内に次のように入力しました。 <SCRIPT LANGUAGE="JavaScript"> <!-- fanction passWordCheck(){ pass=prompt("パスワードを入力してください。",""); if (pass !="") { location.href = pass + ".htm"; }else if(pass == null){ passWordCheck(); } } //--> </SCRIPT> <P ALIGN="center"><STRONG>パスワードを入力して入室してください。</STRONG></P> <P ALIGN="center"> <INPUT TYPE="button" VALUE=""入室する" onclick="passWordCheck""(file:///D:/第1章/技006/member.htm#)"> </P></TD> </TR> ところが、これをブラウザに表示すると次のように2つのエラーが出ます。 1 ")" がありません。 2 'PassWordCheck'は宣言されていません。 このエラーを解決したいのですが、よろしくお願いします。

  • ホームページとパスワード

    パスワードについて、00-12-28 mori0393様のご回答を使わせて頂いております。ソースコードは以下のとおりです。 <SCRIPT Language="JavaScript"> <!-- function passw(){ if(prompt("パスワードを入力してください","")=="?????"){ alert("ようこそ!"); } else{ alert("見ないで!");history.go() } } document.writeln(passw()) <!-- --> </SCRIPT> ここでは、?????がパスワードになりますが、このパスワードのソースコードをホームページのトップページに置いて使った場合、まず最初にパスワードを入力してトップページを開き、Webサイトに入ります。 しかし再度トップページのリンク文字をクリックした場合 、又パスワードを要求してきます。 1度入力すれば、そのあとはパスワードなしでトップページに入る方法はないものでしょうか? どなたかご存知の方、教えて下さい。 よろしくお願いします。

  • スクリプトプロンプト

    お世話になっております。PG1年生です。 さっそくですが、質問させていただきます。 JavaScriptの window.promptというものを使って、 入力項目を作成しています。 そこで問題なのが、 タイトルバーに「Explorer ユーザープロンプト」と、 表示位置に「スクリプト プロンプト:」 が必ず表示されてしまいます。 それらをこちらで指定した内容に書き換えることはできないのでしょうか? よろしくお願いいたします。

  • promptメソッドがIE7では正しく動かない

    javascriptの初心者です、宜しくお願いします。 promptメソッドを利用してインプットされたパスワードのページへリンクしようとしています。マイドキュメント内では問題なく動いているのですが、サーバーへアップロードしてIE7で確認の段階になると正しく動いてくれません。どこが悪いのか全く解りません、どなたかお教え頂けませんでしょうか。 次の様なソースで実行しています。 <script type="text/javascript"> <!-- function passWordCheck(){ pass=prompt("パスワードを入力してください。",""); if (pass != "") {location.href = pass + ".html";} else if(pass == null){passWordCheck();} } //--> </script> </head> <body> <input type="button" value="閲覧する" onClick="passWordCheck()"> </body> </html>

  • ホームページのパスワード制限について(初心者です)

    ホームページ上で見つけた以下のソースを使って、簡易なパスワード制限を かけたいと考えています。 URLの一部をパスワードとして使用する方法だと理解しているのですが、 もうひと工夫したいと思い、質問させていただいています。 例えば、入力したパスワードの真ん中7桁を切り出す等して、 パスワード=URLの一部とならないような工夫はできないでしょうか。 (ソースにパスワードが記載されないようにもしたいです) <script type="text/javascript"><!-- function checkpw(){ var pswd = prompt("パスワードを入力してください:",""); location.href = pswd + ".htm"; } //--></script> <form><center> <input type="button" value="ログイン" onClick="checkpw();"> </center></form> 宜しくお願い致します。

  • パスワード認証付きのページ

    簡単なパスワード認証付きのページを作成しています。 入力したパスワードが隠し文字の「*」で表示されず、普通に表示されてしまいます。 どのようにしたらよいでしょうか? 教えてください。 ======================================== <script language="JavaScript"> <!--// function Password() { pw = prompt("パスワードを入力してください:","") if(pw) { location = pw + ".html" } else { alert("パスワードが間違っています") } } //--> </script>

  • パスワードを二つ用いて隠しページをひらくには?

    お世話になります。 http://www.red.oit-net.jp/tatsuya/java/prompt.htm このサイトをみてパスワード付きホームページの作成の 仕方はおおむね理解したのですが、 私のサイトの場合パスワードを2個用いて 隠されたホームページを表示されるようにしたいと思っています。 <script language="JavaScript"><!-- function myButton(){ myPassWord = document.myFormText.myFormTextPass.value; if ( myPassWord == "pass1" )location.href = "secret.htm"; else alert( "パスワードが違います!" ); } // --></script> <form name="myFormText"> パスワードを入れてください <input type="password" size="30" name="myFormTextPass"> <input type="button" value="OK" onclick="myButton()"> </form> パスワードを入れてください このような表記だと1つのパスワードしか入力できず 困っているのですが2つのパスワードを入力させるようにするにはどのような記述をすればよろしいでしょうか。 よろしくお願いいたします。