2

警告ボックスを文字どおり 1 回だけ表示する方法はありますか。つまり、ユーザーが Web サイトにアクセスしたときに表示されなくなりますか?

4

5 に答える 5

6

たとえば、次のlocalStorageようなプロパティを設定できます

if(!localStorage["alertdisplayed"]) {
    alert("Your text")
    localStorage["alertdisplayed"] = true
}

blazemonger - Compatibility Listで指摘されているように、localStorage は古いブラウザではサポートされていないことに注意してください。

別の方法は、Cookie を設定し、その存在を確認することです

JavaScript で Cookie を設定/取得する方法がわからない場合は、MDNのこの記事を読むことをお勧めします。

于 2012-12-20T15:48:47.423 に答える
3

Cookie の存在を確認し、見つからない場合はアラートを表示し、非常に長い時間が経過すると有効期限が切れる Cookie を設定できます。このようなもの:

if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
    alert("Hello world");
    document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
}

PS:正規表現が防弾かどうかはわかりません。そしてクッキーは...削除される可能性があります。

于 2012-12-20T15:57:51.073 に答える
0

アラート ボックスの代わりに、通知領域の使用を検討する必要があります。そして、クッキーを使用して、通知が本来よりも頻繁に表示されるのを防ぎます。

于 2012-12-20T15:56:56.530 に答える
0

ユーザーが初めてサイトにアクセスしたときに、有効期限が非常に長い Cookie をドロップする可能性があります。次に、その Cookie の存在を確認し、存在しない場合にのみ警告ボックスを表示できます。

于 2012-12-20T15:48:43.427 に答える
0

はい。また、Cookie、ローカル ストレージ、データベース エントリ、またはセッション変数 (またはそれらの組み合わせ) を使用して、通知を既に見た/放棄したかどうかを判断できます。

ただし、JavaScript を扱っている場合、Cookie またはローカル ストレージが唯一のオプションである可能性があります。(ただし、ローカル ストレージはまだ「新しい」ものであり、すべてのブラウザーが実装またはサポートしているわけではないことに注意してください)。

補足: AJAX を使用してフラグをサーバーに保存することもできます (ただし、これはセットアップと使用可能なリソースによって異なります)。

于 2012-12-20T15:48:51.523 に答える