2017-02-18 13 views
0

У меня есть всплывающее окно из Survey Monkey, но оно появляется сразу. Это не очень полезно для всех, так как исследование о пользовательском опыте веб-сайта зависит от пользователя, который использовал веб-сайт в течение как минимум нескольких минут.Как использовать сеансы для отображения всплывающего окна после N-й страницы?

Я хочу запустить этот код только на странице Nth (допустим, седьмой) этой сессии на сайт. Поэтому только после того, как пользователь углубится на сайт, им будет предложено заполнить опрос.

Я новичок, но я знаю, что javascript сбрасывается на каждый pageload/refresh, так что сам по себе не подходит для использования setTimeout.

Я думал, могу ли я как-то отслеживать количество страниц, используя сеанс, а затем загружать только javascript, когда число просмотренных страниц = x, тогда оно решит проблемы, но не совсем уверен, с чего начать?

Все идеи больш были бы оценены, сценарий для всплывающего окна ниже:

(функция (т, е, п, з) {вар C, O, л; t.SMCX = t.SMCX || [], e.getElementById (ы) || (с = e.getElementsByTagName (п), о = С [c.length-1], L = e.createElement (п), l.type = "текст/Javascript! "l.async = 0, l.id = s, l.src = [ "https:"? === location.protocol "https: //": "HTTP: //"," widget.surveymonkey .com/собирать/сайт/JS/surveyidnumbergoeshere.js "] присоединиться. (" "), o.parentNode.insertBefore (л, о))}) (окно, документ," сценарий», "smcx-СДК");
+0

вы можете попробовать использовать [sessionStorage] (https: // developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage) для отслеживания прогресса. –

ответ

0

Поместите этот код в голове вашего сайта:

session_start(); 
if(!isset($_SESSION['survey_counter']) 
    $_SESSION['survey_counter']=1; 

$showSurvey=false; 
if($_SESSION['survey_counter']++ >= 7) 
{ 
    $showSurvey=true; 
    $_SESSION['survey_counter']=0; 
} 

и этот код, где вы хотите повторить JS:

if($showSurvey) echo 'YOUR_JAVSCRIPT_CODE';