2014-10-23 5 views
-2

Как открыть всплывающее окно на новой вкладке после нажатия ссылки «n» раз? Где «n» может быть установлено любое положительное целое число.Как открыть всплывающее окно каждые n кликов?

Я в данный момент данный код, также найден на сайте;

var sync = true; 
window.onbeforeunload = doSync; 

function doSync() { 
if (sync && !window.sessionStorage.getItem('popupShown')) { 
    window.sessionStorage.setItem('popupShown', 1); 
    window.open('myurl', '_blank'); 
} 
} 

Это открывает всплывающее окно только при первом щелчке, после сеанса браузера.

ответ

0

Вы можете добавить счетчик:

var sync = true; 
window.onbeforeunload = doSync; 
var n = 5; // total number of clicks 
var current = 1; // current number of clicks 

function doSync() { 
    if (sync && !window.sessionStorage.getItem('popupShown') && current == n) { 
     window.sessionStorage.setItem('popupShown', 1); 
     window.open('myurl', '_blank'); 
    } 
    else if (sync && !window.sessionStorage.getItem('popupShown') && current < n) { 
     current++; 
    } 
} 
0

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

Что-то вроде этого:

var sync = true; 
var n = 10; 
window.onbeforeunload = doSync; 

function doSync() { 
var popupCount = window.sessionStorage.getItem('popupCount'); 
if(!popupCount) 
    popupCount = 0; 

if (sync && popupCount < n) { 
    window.sessionStorage.setItem('popupShown', popupCount++); 
    window.open('myurl', '_blank'); 
} 
+0

Я попытался использовать это, но он не работает. Забыл сообщить вам, что ссылка представляет собой «случайную картинку» (похожую на случайную кнопку tumblr). Каждый раз, когда он нажимается, загружается новая уникальная страница pic. –

0

Простой и дидактическое решение:

Вы можете использовать глобальную переменную или любой лучший способ для хранения переменной счетчика.

Когда пользователь нажимает на вашу ссылку, вызывается функция javascript и счетчик увеличивается.

Если количество кликов включено, чтобы открыть всплывающее окно, сделайте это и снова установите счетчик = 0.

i = 0; // There are better ways to implement this counter. This is the simplest way. 

function popup() 
{ 
    i++; 
    if(i==5) 
    { 
     alert('PopUp'); 
     i = 0; 
    } 
} 
0

нашел это решение

<script type"text/javascript"> 

функция всплывающего() {

если (! SessionStorage.pageCounter) {

open('http://yahoo.com', '_blank'); 
sessionStorage.setItem('pageCounter',0); 

}

еще если (sessionStorage .pageCounter == 4) {

open('http://yahoo.com', '_blank'); 

}

еще если (sessionStorage.pageCounter == 9) {

open('http://yahoo.com', '_blank'); 

}

sessionStorage.setItem('pageCounter',parseInt(sessionStorage.pageCounter)+1); 

}

всплывающее окно открывается на первом , 5-й и 10-й клики

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