点击链接后,如何在新标签页中打开弹出窗口' 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 :(得分: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++;
}
}
答案 1 :(得分: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');
}
答案 2 :(得分:0)
简单和教学解决方案:
您可以使用全局变量或任何更好的方法来存储计数器变量。
当用户点击您的链接时,会调用javascript函数并递增计数器。
如果点击次数达到打开弹出窗口,则执行此操作并再次设置counter = 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;
}
}
答案 3 :(得分:0)
找到了这个解决方案
<script type"text/javascript">
function popup(){
if(!sessionStorage.pageCounter){
open('http://yahoo.com', '_blank');
sessionStorage.setItem('pageCounter',0);
}
否则if(sessionStorage.pageCounter == 4){
open('http://yahoo.com', '_blank');
}
else if(sessionStorage.pageCounter == 9){
open('http://yahoo.com', '_blank');
}
sessionStorage.setItem('pageCounter',parseInt(sessionStorage.pageCounter)+1);
}
弹出窗口会在第一次,第五次和第十次点击时打开