警告ボックスを文字どおり 1 回だけ表示する方法はありますか。つまり、ユーザーが Web サイトにアクセスしたときに表示されなくなりますか?
5 に答える
たとえば、次のlocalStorage
ようなプロパティを設定できます
if(!localStorage["alertdisplayed"]) {
alert("Your text")
localStorage["alertdisplayed"] = true
}
blazemonger - Compatibility Listで指摘されているように、localStorage は古いブラウザではサポートされていないことに注意してください。
別の方法は、Cookie を設定し、その存在を確認することです
JavaScript で Cookie を設定/取得する方法がわからない場合は、MDNのこの記事を読むことをお勧めします。
Cookie の存在を確認し、見つからない場合はアラートを表示し、非常に長い時間が経過すると有効期限が切れる Cookie を設定できます。このようなもの:
if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
alert("Hello world");
document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
}
PS:正規表現が防弾かどうかはわかりません。そしてクッキーは...削除される可能性があります。
アラート ボックスの代わりに、通知領域の使用を検討する必要があります。そして、クッキーを使用して、通知が本来よりも頻繁に表示されるのを防ぎます。
ユーザーが初めてサイトにアクセスしたときに、有効期限が非常に長い Cookie をドロップする可能性があります。次に、その Cookie の存在を確認し、存在しない場合にのみ警告ボックスを表示できます。
はい。また、Cookie、ローカル ストレージ、データベース エントリ、またはセッション変数 (またはそれらの組み合わせ) を使用して、通知を既に見た/放棄したかどうかを判断できます。
ただし、JavaScript を扱っている場合、Cookie またはローカル ストレージが唯一のオプションである可能性があります。(ただし、ローカル ストレージはまだ「新しい」ものであり、すべてのブラウザーが実装またはサポートしているわけではないことに注意してください)。
補足: AJAX を使用してフラグをサーバーに保存することもできます (ただし、これはセットアップと使用可能なリソースによって異なります)。