2015-07-06 5 views
0

Я пытаюсь отобразить div-тег, когда кто-то сначала приходит на мой сайт. После нажатия на ссылки на другие страницы, когда они возвращаются на главную страницу, я не хочу, чтобы этот div-тег отображался. Есть ли способ сохранить что-то вроде переменной сеанса, которую я могу проверить, чтобы я не показывал вводный div-тег?Как предотвратить инициализацию глобальной переменной javascript при каждой загрузке страницы?

Я попытался использовать глобальную декларацию вне функции, но это инициализирует каждый раз, когда страница загружается. Так как это страница .php, это is собирается перезагрузить, конечно.

Есть ли другой способ сделать это (кроме файлов cookie), например, выполнив код javascript из php (я знаю, как выполнять переменные сеанса в PHP).

+2

Ну, если печенье - это не-хот (почему?), А как насчет html5 localstorage? – doldt

+3

Вы хотите [sessionStorage] (https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage) –

+0

doidt, cookie попадают в юридические проблемы, которые я планирую решать позже - прямо сейчас, просто получив MVP. Кроме того, html5 ограничит поддержку браузера более новыми браузерами. – Chiwda

ответ

0

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

0

Первый Thanx для @Denys Séguret за предоставление ответа на мой вопрос. Вот код, который я в конце концов создал.

Во-первых, в заголовке в .php файле, у меня есть:

<script type="text/javascript"> 
    if (sessionStorage.getItem('firsttime') === null) { 
     sessionStorage.setItem('firsttime', 'True'); 
    } 
    function Hider(){ 
     document.getElementById("Opener").style.display = "none"; 
     sessionStorage.setItem('firsttime', 'False'); 
     } 
    </script> 

Тогда в теле, у меня есть:

<script type="application/x-javascript"> 
    var IsItFirstTime = sessionStorage.getItem('firsttime'); 
    varMessage1 = "<p class=\"h1\">Welcome to Blah-Bla!</h1><br><h2>The premier site for the best movies!</h2>" 
    varMessage2 = "<p>Every week we bring you a fresh batch of movies and you can expect these to be the best movies in that category.</p><p>Click to Continue</p>" 
    if (IsItFirstTime == 'True') { 
     var1 = "<div id=\"Opener\" onclick=\"Hider()\">" + varMessage1 + varMessage2 + "</div>"; 
     document.write(var1); 
    } 
</script> 

И это периферийная, но здесь есть CSS:

#Opener { 
    background-color: #ff0099; 
    position:absolute; 
    width:600px; 
    height:440px; 
    z-index:100; 
    margin-left: 50%; 
    left: -300px; 
    top: 180px; 
    text-align:center; 
    padding-left:50px; 
    padding-right:50px; 
} 

Обратите внимание на строку z-index, которая плавает на панели «Открыватель».

Надеюсь, это поможет кому-то еще.

Смежные вопросы