Как я могу кодировать Javascript Alert, чтобы он заполнялся только один раз за веб-сессию? - PullRequest
3 голосов
/ 31 мая 2019

Я создаю веб-сайт для своего финала, и на моей домашней странице закодировано предупреждение «контент для взрослых».Я пытаюсь, чтобы сайт заполнял это сообщение только один раз за сеанс, но сейчас он заполняется каждый раз, когда вы переходите на домашнюю страницу.

Класс - это HTML и CSS, но нас попросили включить один базовый код JavaScriptи «предупреждение» казалось наиболее подходящим.Я пытался погуглить этот вопрос разными способами, чтобы получить помощь, но в основном он предоставляет информацию, превышающую очень базовый уровень javascript.

Это мой текущий код:

<script>
alert("WARNING! Adult Language and Content! The following is intended for 
immature adults only. Viewer Discretion is Advised.")
</script>

Это сайт: http://mysite.du.edu/~mdarienz/index.html

Так как это для финала, мне не нужен код дляисправить это, но если бы вы могли, возможно, направить меня в правильном направлении для того, как приблизиться к нему, я был бы очень признателен.

Ответы [ 4 ]

3 голосов
/ 31 мая 2019

sessionStorage это все, что вам нужно.Просто добавьте это в ваш скрипт.

<script>
    if(sessionStorage.getItem('showAlert') != "false"){
        alert("WARNING! Adult Language and Content! The following is intended for 
immature adults only. Viewer Discretion is Advised.");
        sessionStorage.setItem('showAlert', "false");
    }
</script>
0 голосов
/ 31 мая 2019

Используя sessionStore, мы можем убедиться, что для каждой вкладки / сеанса отображается предупреждение, а не отображается при каждой загрузке страницы.

!sessionStorage.getItem('alert') && 
(!alert('WARNING! Adult Language and Content! The following is intended for immature adults only. Viewer Discretion is Advised.') && 
sessionStorage.setItem('alert', true));
0 голосов
/ 31 мая 2019

Вы можете использовать localStorage, сохраненные данные сохраняются в сеансах браузера. И данные, хранящиеся в localStorage, не имеют срока годности (не как sessionStorage)

Пожалуйста, измените ваш код на

<script>
    var seenIt = localStorage.getItem('seenIt')
    if(string.isNullOrEmpty(seenIt)){
        alert("WARNING! Adult Language and Content! The following is intended for immature adults only.Viewer Discretion is Advised.");
        localStorage.setItem('seenIt', "yes");
}
</script>
0 голосов
/ 31 мая 2019

Вы можете хранить свои данные на основе сеанса, используя API sessionStorage, предоставляемый большинством браузеров. Таким образом, вы можете хранить bool (или число или строку) в sessionStorage, чтобы проверить, показывали ли вы предупреждение или нет.

<script type="text/javascript">
// check if api exists
if (sessionStorage !== undefined) {
    // check if you have any item with the key 'showAlert'
    if (sessionStorage.getItem("showAlert") == null) {
        alert("Show alert");
        // Set the item with the key 'showAlert' so that 
        // this won't be executed later.
        sessionStorage.setItem("showAlert", false);
    }
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...