Установить файл cookie для страницы согласия [дублировать]

Интерпретатор Python будет читать функцию как полный блок. Я думаю об этом, читая его в два прохода, один раз, чтобы собрать его закрытие (локальные переменные), а затем снова превратить его в байтовый код.

Как я уверен, вы уже знали, что имя, используемое слева от '=', неявно является локальной переменной. Не раз я был пойман, изменив переменный доступ к + =, и это неожиданно другая переменная.

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

3
задан meowsome 17 June 2015 в 19:01
поделиться

3 ответа

Вместо этого вы можете использовать localStorage, только когда пользователь очистит его, он снова получит всплывающее окно (то же самое с куки-файлами), но гораздо проще:

(function() {
    var visited = localStorage.getItem('visited');
    if (!visited) {
        document.getElementById("popupp").style.visibility = "visible";
        localStorage.setItem('visited', true);
    }
})();

html:

<div id="popupp" style="visibility:hidden;">hi</div>

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

6
ответ дан taxicala 22 August 2018 в 21:59
поделиться
  • 1
    Благодаря! Я проверю это прямо сейчас – meowsome 17 June 2015 в 18:31
  • 2
    Кажется, он не работает ... Я использую его следующим образом: & lt; script & gt; var firstTime = localStorage.getItem ('firstTime'); if (firstTime) {document.getElementById (& quot; popupp & quot;). style.visibility = visible; localStorage.setItem ('firsTime', true); } & lt; / script & gt; & lt; div id = "popupp" стиль = & Quot; видимость: скрытый; & Quot; & GT; Привет & л; / дел & GT; – meowsome 17 June 2015 в 18:32
  • 3
    Проверьте мое редактирование, вы использовали мой код перед редактированием. – taxicala 17 June 2015 в 18:33
  • 4
    Он все еще не работает? – meowsome 17 June 2015 в 18:37
  • 5
    Добавьте тег сценария в конец вашего HTML-кода, прежде чем закрыть тег body. Я считаю, что js выполняется до того, как html завершит загрузку. – taxicala 17 June 2015 в 18:38

Попробуйте это: в html: class="popupp" измените на id="popupp"

и в javascript: document.getElementById("popupp").style.visibility = visible; измените на document.getElementById("popupp").style.visibility = "visible";

Демо

0
ответ дан Ahosan Karim Asik 22 August 2018 в 21:59
поделиться

Если целью является только показать его один раз, вы можете использовать пример на веб-сайте MDN в качестве начала.

if (document.cookie.replace(/(?:(?:^|.*;\s*)someCookieName\s*\=\s*([^;]*).*$)|^.*$/, "$1") !== "true") {
  alert("Do something here!");
  document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
}

http: // jsfiddle.net/daCrosby/pqb5baa5/

Изменить

Здесь он показывает вам div. Заметьте, я переместил стиль в CSS вместо встроенного в мой jsFiddle - гораздо лучший подход, чтобы попасть в зависание

if (document.cookie.replace(/(?:(?:^|.*;\s*)someCookieName\s*\=\s*([^;]*).*$)|^.*$/, "$1") !== "true") {
    document.getElementById("popupp").style.visibility = "visbile";
    document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
}

http://jsfiddle.net/daCrosby/pqb5baa5/2 /

0
ответ дан DACrosby 22 August 2018 в 21:59
поделиться
  • 1
    Могу ли я заставить его показывать div вместо того, чтобы давать предупреждение? – meowsome 17 June 2015 в 18:38
  • 2
    @ meowsom3 Да! просто измените alert('Do something here!'); на что-то вроде этого: document.getElementById( popupp ).style.visibilty = 'visible'; – alexandreferris 17 June 2015 в 18:44
  • 3
    @ meowsom3 да, вы можете. См. Мое редактирование. – DACrosby 17 June 2015 в 18:48
Другие вопросы по тегам:

Похожие вопросы: