私のサイトのユーザーに警告メッセージがあります:
alert("Message to users");
このメッセージは、テンプレートを継承するすべてのページに表示されます。
ユーザーがjavascriptを使用して追加のアラートメッセージを停止するためのオプションを作成したいと思います。私が念頭に置いているのは、メッセージの下にあるチェックボックスで、追加のメッセージを停止することです。
私のサイトのユーザーに警告メッセージがあります:
alert("Message to users");
このメッセージは、テンプレートを継承するすべてのページに表示されます。
ユーザーがjavascriptを使用して追加のアラートメッセージを停止するためのオプションを作成したいと思います。私が念頭に置いているのは、メッセージの下にあるチェックボックスで、追加のメッセージを停止することです。
Firefoxには、この機能がブラウザに組み込まれています。これがあなたが複製しようとしている機能だと思いますか?
ここには2つの異なる質問があります。アラートボックスを作成する方法、または設定を保存する方法を尋ねていますか?
アラートボックスの作成方法を尋ねている場合は、次の2つの方法があります。
オプション1:@dystroyがjQueryを使用してこれを行う方法の例を提供しているようです。
オプション2:[OK]/[キャンセル]ボタンが表示されます。メッセージを次のように設定できます。
「ユーザーへのメッセージ」
これらのポップアップを今後防止しますか?OKキャンセル
また、[OK]をクリックした場合は、ポップアップが再度発生しないように、何らかの方法で設定を保存します。
または、ユーザーがデフォルトでポップアップを防止せずに[OK]をクリックできるようにする場合は、メッセージを「キャンセルを押して今後これらのポップアップを防止する」などに変更できます。
この設定をページの読み込み間で保持する場合は、データベース、Cookie、セッション変数などに保存する必要があります。
コードは次のようになります。
if (/* check the setting to see if we should display a message */)
{
var r = confirm("Message to users\n\nPress Cancel to prevent these popups in the future");
if (!r)
{
// do something to store this setting
}
}
これがデモです:http://jsfiddle.net/jR8hk/
それを実行するか、ページをリロードするたびに、1秒後にアラートが表示されます。
ただし、チェックボックスをオンにすると、アラートは二度と表示されなくなります。コメントで提案したように、localStorageを使用してローカルコンピューターに設定を設定することで機能します。
ここにその部分があります:
HTML:
<div id=alert>
THIS IS A MESSAGE !
<br><br><input type=checkbox id=alert_cb> SHUT UP
<br><input type=button id=alert_close value = close>
</div>
<p>
<br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal content <br>normal conten <br>normal contenttttttttttt
</p>
CSS:
#alert {
display:none;
background-color: red;
z-index:2;
position: fixed;
left: 40px;
right: 40px;
top: 40px;
height: 100px;
}
JavaScript:
setTimeout(function(){
if (!localStorage['stop_please']) $('#alert').show('slow');
}, 1000);
$('#alert_close').click(function(){
if ($('#alert_cb').is(':checked')) localStorage['stop_please'] = "pleeeeaaaaase";
$('#alert').hide();
});
十分でない場合は、cssを適応させることをお勧めします。