プロが教える店舗&オフィスのセキュリティ対策術

http://www.tagindex.com/javascript/window/confir …
のような警告ダイアログで、
「以後このメッセージを表示しない」のチェックボックスありにして、
チェックしたら表示しないというのはどのようにしたらいいでしょうか?

どうぞよろしくお願いします。

A 回答 (4件)

No.3です。


>、「OK」をクリックした後に「チェック:なし ボタン:OK」というウインドウが
>出るのを避けることはできますか?
すでにおわかりかも知れませんが、念のため。

表示は、入力内容が取得できている確認に、サンプルとしてアラート表示しているだけですので、その部分を消せばよいだけです。

ご希望のような動作をさせるには、No.2様の回答のようにCookieを利用するのが簡単でしょう。
擬似ダイアログの初期設定をdisplay:noneにしておいて、ロード時にCookieを取得し、必要に応じて表示するという流れになると思われます。
(サンプルにはこの部分は含まれていません)

また、サンプルは位置が固定なので、通常のダイアログのようにユーザがダイアログの位置を移動することができません。この機能も付けようと思えばjavascriptで可能ですが少々面倒かも。
(親ウィンドウの外には移動できないので、通常のダイアログウィンドウとはやはり違いますが…)

別ウィンドウを開いて同様のことを行うのも可能だと思われますが、ほとんどNo.2様の回答と同内容になってしまいますね。
よく考えてみると、別ウィンドウにしておいたほうが、本体のソースが整理できるので(ダイアログ部分が外部化できる)、そちらのほうが扱いやすいかも知れませんね。
その場合は、Cookieを確認して、必要なら別ウィンドウを開くといった感じになるだけで、考え方はほぼ同じです。
    • good
    • 0
この回答へのお礼

たびたび恐れ入ります!
なるほど、確かに別ウインドウの方が外部化できて便利ですよね。
やってみます。ありがとうございました!

お礼日時:2009/01/08 13:20

ダイアログじゃないけど、こんなこともできますという参考までに…


(右上の×マークは見せかけだけにしてあります)

<html>
<head>
<style type="text/css">
#dlog {
heigth:110px; width:300px;
font-size:10pt;
border:2px ridge gray;
background-color:silver;
text-align:center;
position:absolute;
top:200px; left:200px;
}
#dlog #title{
background-color:navy;
padding:1px 5px;
text-align:right;
}
#dlog #message{
margin:10px auto;
}
</style>
<script language="javascript">
function hoge(c){
document.getElementById('dlog').style.display='none';
var m='チェック : ';
m += document.getElementById('box').checked?'あり':'なし';
m += '\nボタン : ' + (c?'OK':'キャンセル');
alert(m);
}
</script>
</head>
<body>
本文
<p>
なんたらかんたら
<div id="dlog">
<div id="title"><input type="button" value="×">
</div>
<div id="message">
<p><input type="checkbox" id="box"> 以後このメッセージを表示しない
<p><input type="button" value="  OK  " onclick="hoge(1);"> 
<input type="button" value="キャンセル" onclick="hoge(0);"> 
</div>
</div>
</body>
</html>

この回答への補足

すみません、「OK」をクリックした後に「チェック:なし ボタン:OK」というウインドウが出るのを避けることはできますか?

補足日時:2009/01/08 11:51
    • good
    • 0
この回答へのお礼

おおぉ~良さそうな感じですね。
デザインも自由になるし…やってみます!
ありがとうございました!

お礼日時:2009/01/08 11:34

すいません、補足です。


ちょっと違いますが、showModalDialogを使えばできますね。
これはHTMLをダイアログのように見せるJavaScriptの関数です。
つまりメッセージとチェックボックスを用意したHTMLを作成しておき、それをあたかもダイアログのように表示するといった手法です。
チェックしたらCookieを保存するようにしておけば、過去にチェックしたかどうかは記憶しておくことができます。
    • good
    • 0
この回答へのお礼

さっそくありがとうございます。
showModalDialogですね、ちょっと調べてみます。
ありがとうございます。

お礼日時:2009/01/08 11:33

結論から言うと、JavaScriptではできません。


JavaScriptでは、alert、confirm、promptの3種類のダイアログボックス表示しか存在しないためです。
phpやperlなど他のプログラムで作成するしかないですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!