2024. április 16., kedd

Gyorskeresés

Tartalom figyelmeztető Javascript popup dokumentációja

Írta: | Kulcsszavak: html . javascript . kód . web . popup . cookie . süti . script . felugróablak . contentgate

[ ÚJ BEJEGYZÉS ]

Javascript popupot kellett készíteni egy felnőtt tartalmú oldalhoz.
Elvárások voltak, hogy ugorjon fel a popup, ha a felhasználó még nem fogadta el, hogy mindenféleképp látni akarja a tartalmat, ha nem akarja látni, akkor a "NEM" link megnyomásaval irányítson el az oldalról, mondjuk a Minimax oldalára, de ha vissza látogat, akkor újra dobja fel neki a popupot, egészen addig, amíg ki nem nyílvánítja az "IGEN" linkel a tartalom megtekintési szándékát.

A popup megjelenítéséhez az alábbi (popup.php) javascript popupot használtam. Igen, PHP a kiterjesztés, mert az éles verzióban php kódok is lesznek, a prototípusban csak html és javascript van.
Eredetileg nem volt meg benne a lehetőség, hogy megadjuk a választási lehetőséget a felhasználónak az IGEN / NEM választásra, mivel ez egy reklám popup volt, kiskorában :D Így erre nem is volt szükség, csak a popup bezáró gombra. A cookie létrejött a popup.php fájlban megadott lejárati dátummal az oldal betöltésekor, amit szabályozni lehettett script oldalon.

A popup.php -ben lévő script az oldal betöltésekor az eredeti minta popuptól eltérően létrehoz egy "ft-cookie" nevű cookie-t ami rögtön érvénytelen is lesz, mert a lejárati ideje 1970. Január 1. Így mivel a cookie érvénytelen a popup megjelenik. A felhasználó az IGEN linkkel (A prototípusban a SET A COOKIE AND CLOSE linkel) létrehoz egy 1 napos lejáratú ft-cookie nevű cookie-t (magyarul sütinek nevezik), így a popup a süti lejártáig nem jelenik meg. (Itt lehetne például a session erejéig is megadni a süti élettartamát). A NEM linkre kattintva az 1970-es lejáratú süti íródik újra a felhasználó gépére és elirányítja egy mesecsatorna oldalára (A prototípusban DELETE COOKIE AND GO TO MINIMAX link van). Ha így látogat vissza az oldalra, a popup továbbra is megjelenik neki.

A popup.php tartalma:
<html>
<head>

<style type="text/css">
#interContainer{position:absolute;width:749px;left:0;top:0;padding:0px;background-color:transparent;visibility:hidden;z-index:6;}
#interContainer
.headerbar{background-color:transparent;padding:0px;text-align:right;}
#interContainer .headerbar a{text-decoration:none;}
#interContent{text-align:left;background-color:white;padding:5px;border:3px solid #000;-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;}
#interContent #submit{border:0;}
#interVeil{position:absolute;background: #DF0101 ;right:0;width:10px;top:0;z-index:5;visibility:hidden;filter:progid:DXImageTransform.Microsoft.alpha(opacity=70);opacity:.7;}
#interContainer{margin:0;padding:0;}
</style>

<script type="text/javascript">
var interstitialBox={
//1) Ide írod a tartalmat, ami a POPUPBA kell!
displayfiles: ['popupcontent.html', 'popupcontent.html'],

//2) Frekvencia típus és érték
displayfrequency: ["cookie", "24"],

//3) HTML box definiálása
defineheader: '<div class="headerbar"><a href="#" onClick="javascript:interstitialBox.closeit(); return false"><img src="closebox.png" alt="" width="30" height="30" border="0" /></a></div>',

//4) Süti beállítás (név és elérés)
cookiesetting: ["ft-cookie", "path=/"],

//5) bust caching
ajaxbustcache: true,

//6) Scrollbarok letiltása (Böngésző függő lehet)
disablescrollbars: true,

//7) Automatikus elrejtés, ha kell (0 = kikapcsolva)
autohidetimer: 0,

////Ezt itt ne nagyon piszkáld///

ie7: window.XMLHttpRequest && document.all && !window.opera,
ie7offline: this.ie7 && window.location.href.indexOf("http")==-1, //IE7 ellenőrzés
launch:false,
scrollbarwidth: 16,

ajaxconnect:function(url, thediv){
var page_request = false
var bustcacheparameter=""
if (window.XMLHttpRequest && !this.ie7offline) // Ha Mozzilla, IE7, Szafari, stb
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // ha IE6
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
interstitialBox.loadpage(page_request, thediv)
}
if (this.ajaxbustcache) //ha bust caching külső lap
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
},

loadpage:function(page_request, thediv){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
document.getElementById("interContent").innerHTML=page_request.responseText
}
},

createcontainer:function(){
//write out entire HTML for Interstitial Box:
document.write('<div id="interContainer">'+this.defineheader+'<div id="interContent"></div></div><div id="interVeil"></div>')
this.interContainer=document.getElementById("interContainer") //reference interstitial container
this.interVeil=document.getElementById("interVeil") //reference veil
this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
},


showdelay:1,

showcontainer:function(){
if (this.interContainer.style.display=="none") return //if interstitial box has already closed, just exit (window.onresize event triggers function)
var ie=document.all && !window.opera
var dom=document.getElementById
var scroll_top=(ie)? this.standardbody.scrollTop : window.pageYOffset
var scroll_left=(ie)? this.standardbody.scrollLeft : window.pageXOffset
var docwidth=(ie)? this.standardbody.clientWidth : window.innerWidth-this.scrollbarwidth
var docheight=(ie)? this.standardbody.clientHeight: window.innerHeight
var docheightcomplete=(this.standardbody.offsetHeight>this.standardbody.scrollHeight)? this.standardbody.offsetHeight : this.standardbody.scrollHeight
var objwidth=this.interContainer.offsetWidth
var objheight=this.interContainer.offsetHeight
this.interVeil.style.width=docwidth+"px" //set up veil over page
this.interVeil.style.height=docheightcomplete+"px" //set up veil over page
this.interVeil.style.left=0 //Position veil over page
this.interVeil.style.top=0 //Position veil over page
this.interContainer.style.left=docwidth/2-objwidth/2+"px" //Position interstitial box
var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+5+"px" //Position interstitial box
this.interContainer.style.top=Math.floor(parseInt(topposition))+"px"
if (this.autohidetimer && parseInt(this.autohidetimer)>0 && typeof this.timervar=="undefined")
this.timervar=setTimeout("interstitialBox.closeit()", this.autohidetimer*1000)
var oop=this;
setTimeout(function(){
oop.interVeil.style.visibility="visible" //Show veil over page
oop.interContainer.style.visibility="visible" //Show interstitial box
},oop.showdelay);
},

closeit:function(){
this.interVeil.style.display="none"
this.interContainer.style.display="none"
if (this.disablescrollbars && window.XMLHttpRequest) //if disablescrollbars enabled and modern browsers- IE7, Firefox, Safari, Opera 8+ etc
this.standardbody.style.overflow="auto"
if (typeof this.timervar!="undefined") clearTimeout(this.timervar)
},

getscrollbarwidth:function(){
var scrollbarwidth=window.innerWidth-(this.interVeil.offsetLeft+this.interVeil.offsetWidth) //
this.scrollbarwidth=(typeof scrollbarwidth=="number")? scrollbarwidth : this.scrollbarwidth
},

hidescrollbar:function(){
if (this.disablescrollbars){ //if disablescrollbars enabled
if (window.XMLHttpRequest) //if modern browsers- IE7, Firefox, Safari, Opera 8+ etc
this.standardbody.style.overflow="hidden"
else //if IE6 and below, just scroll to top of page to ensure interstitial is in focus
window.scrollTo(0,0)
}
},

dotask:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
},

initialize:function(){
this.createcontainer() //write out interstitial container
this.ajaxconnect(this.displayfiles[Math.floor(Math.random()*this.displayfiles.length)], this.interContainer) //load page into content via ajax
this.dotask(window, function(){interstitialBox.hidescrollbar(); interstitialBox.getscrollbarwidth(); setTimeout("interstitialBox.showcontainer()", 100)}, "load")
this.dotask(window, function(){interstitialBox.showcontainer()}, "resize")
}
}

/////////////End of interstitialBox object declaration here ////////////////////////////////



function getCookie(Name){
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return null
}


function setCookie(name, value, hours){
var expireDate = new Date()
//set "expstring" to either an explicit date (past or future)
if (typeof hours!="undefined"){ //if set persistent cookie
// var expstring=expireDate.setHours(expireDate.getHours()+parseInt(hours))
document.cookie = 'ft-cookie' +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
// document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; "+interstitialBox.cookiesetting[1]
}
else //else if this is a session only cookie setting
document.cookie = name+"="+value+"; "+interstitialBox.cookiesetting[1]
}


var stitialvars=new Object() //temporary object to reference/ shorthand certain interstitialBox properties
stitialvars.freqtype=interstitialBox.displayfrequency[0] //"chance" or "cookie"
stitialvars.cookieduration=interstitialBox.displayfrequency[1] //"session" or int (integer specifying number of days)
stitialvars.cookiename=interstitialBox.cookiesetting[0] //name of cookie to use


if (stitialvars.freqtype=="chance"){ //IF CHANCE MODE
if (Math.floor(Math.random()*interstitialBox.displayfrequency[1])==0)
interstitialBox.launch=true
}
else if (stitialvars.freqtype=="cookie" && stitialvars.cookieduration=="session"){ //IF "SESSION COOKIE" MODE
if (getCookie(stitialvars.cookiename+"_s")==null){ //if session cookie is empty
setCookie(stitialvars.cookiename+"_s", "loaded")
interstitialBox.launch=true
}
}
else if (stitialvars.freqtype=="cookie" && typeof parseInt(stitialvars.cookieduration)=="number"){ //IF "PERSISTENT COOKIE" MODE
if (getCookie(stitialvars.cookiename)==null || parseInt(getCookie(stitialvars.cookiename))!=parseInt(stitialvars.cookieduration)){ //if persistent cookie is empty or admin has changed number of days to persist from that of the stored value (meaning, reset it)
setCookie(stitialvars.cookiename, stitialvars.cookieduration, stitialvars.cookieduration)
interstitialBox.launch=true
}
}

if (interstitialBox.launch)
interstitialBox.initialize()




function alertCookie(name) {
alert(document.cookie);
}


function setACookie() {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*86400;
now.setTime(expireTime);
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = 'ft-cookie=24 - '+now.toGMTString()+';expires='+now.toGMTString()+';path=/';
//console.log(document.cookie);
}

// Ez a kód azt csinálja hogy átírja a cookie-t. A lejárati dátumát 1970. Január 1 00:00 Csütörtökre állítja. Így egyből érvénytelen lesz.
function delete_cookie(name) {
document.cookie = 'ft-cookie' +'=Thu, 01 Jan 1970 00:00:01 GMT - Ervenytelen; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

</script>




</head>

<body>

<a href="#" onClick="setACookie()">SET A COOKIE - SET 1 DAY EXP COOKIE</a>

- - - -

<a href="#" onclick="delete_cookie()">DELETE COOKIE (CREATE A 1970 EXP VALUE COOKIE)</a>

- - - - - - - -

<button onclick="alertCookie()">Show cookies</button>
- - - - - - - -
<br />

TARTALOM --- TARTALOM --- TARTALOM ---
......


</body>
</html>

Ehhez a tartozik egy popupcontent.html ami a popup tartalmát fogja adni. A popup.php-ben a
displayfiles: [popupcontent.html', 'popupcontent.html'], sorral hivatkozunk rá.
A neve megváltoztatható, ekkor itt is át kell írni.

A popupcontent.html tartalma:

<html>
<head>

</head>

<body >

<br />
FIGYELEM !
<br />
OLYAN TARTALMAT KÉSZÜL MEGTEKINTENI, AMI 18 ÉVEN ALULIAKNAK NEM AJÁNLOTT!
<br />
BIZTOS ÖN EBBEN?
<br />
<button onclick="alertCookie()">Show cookies</button>
- - - - - - - -

<a href="#" onClick="setACookie()">SET A COOKIE</a>
- - - -

<a href="#" onClick="setACookie();javascript:interstitialBox.closeit();">SET A COOKIE AND CLOSE</a>
- - - -

<a href="#" onclick="delete_cookie()">DELETE COOKIE</a>

- - - - - - - -
<a href="http://minimax.hu" onclick="delete_cookie()">DELETE COOKIE AND GO TO MINIMAX</a>

- - - - - - - -




<a href="#" onClick="javascript:interstitialBox.closeit(); return false">CLOSE POPUP</a>
- - - -

<br />

<br />

</body>
</html>

Látható, hogy a figyelmeztető szöveg mellett több link is van ebben a prototípusban.

<a href="#" onClick="javascript:interstitialBox.closeit(); return false">CLOSE POPUP</a>

Ez egyszerűen bezárja a popup ablakát, nem csinál süti műveletet.

<a href="#" onClick="setACookie()">SET A COOKIE</a>

Ez létrehoz egy ft-cookie nevű cookiet, ami 1 napos lejáratú lesz, a popup.phpben ez a sor tartozik hozzá:
function setACookie() {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1000*86400;
now.setTime(expireTime);
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = 'ft-cookie=24 - '+now.toGMTString()+';expires='+now.toGMTString()+';path=/';
//console.log(document.cookie);
}

<a href="#" onClick="setACookie();javascript:interstitialBox.closeit();">SET A COOKIE AND CLOSE</a>

Ez ugyan az, mint az előző, kombinálva a popup bezárással. Ez is a setACookie() funkcióra fog hivatkozni a popup.php-ban. Tulajdonképpen az éles verzióban ez fogja jelenteni az IGEN gombot. Az user rákattint és létrejön a sütije és egy napig nem ugrik fel neki a figyelmeztetés újból.

<a href="#" onclick="delete_cookie()">DELETE COOKIE</a>

Ez tulajdonképpen törli a sütit. Vagyis inkább érvényteleníti azt. Mivel egy 1970-es lejáratú sütit hoz létre, felülírva az eredeti sütit, akármi legyen benne.
A function delete_cookie(name) { document.cookie = 'ft-cookie' +'=Thu, 01 Jan 1970 00:00:01 GMT - Ervenytelen; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } sor tartozik hozzá a popup.php-ben.

<a href="http://minimax.hu" onclick="delete_cookie()">DELETE COOKIE AND GO TO MINIMAX</a>

Ez is ugyanaz mint az előző, csak a minimax oldalára navigálja a felhasználót, miután beállította a sütit 1970-es lejáratúra.
Az éles verzióban ez fogja jelelenteni a NEM gombot, amikoris a felhasználó nem akarja megnyitni a tartalmat.

<button onclick="alertCookie()">Show cookies</button>

Ez egy gomb, ami megjeleníti egy riasztási ablakban, hogy él e az 1 napos süti. Csak a prototípushoz kellett.

Ezek a linkek a prototípusban bekerültek a tartalmi oldalra is a tesztelés végett.

Ha ki szeretnéd próbálni, akkor egy bármilyen nevezetű .html kiterjesztésű fájlba írd bele a popup.php tartalmát, illetve popupcontent.html-be is tedd bele a fenti hozzátartozó kódot és futtasd a tárhelyeden vagy szervereden vagy akár a saját gépeden.

Így néz ki a prototípus a böngészőben:

Az alap popup tartalma ez volt:

<html>
<head>

<style type="text/css">
#interContainer{position:absolute;width:749px;left:0;top:0;padding:0px;background-color:transparent;visibility:hidden;z-index:6;}
#interContainer
.headerbar{background-color:transparent;padding:0px;text-align:right;}
#interContainer .headerbar a{text-decoration:none;}
#interContent{text-align:left;background-color:white;padding:5px;border:3px solid #000;-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;}
#interContent #submit{border:0;}
#interVeil{position:absolute;background: #e31515;right:0;width:10px;top:0;z-index:5;visibility:hidden;filter:progid:DXImageTransform.Microsoft.alpha(opacity=70);opacity:.8;}
#interContainer{margin:0;padding:0;}
</style>

<script type="text/javascript">
var interstitialBox={
//1) Ide írod a tartalmat, ami a POPUPBA kell!
displayfiles: ['adat.html', 'adat.html'],

//2) Frekvencia típus és érték
displayfrequency: ["cookie", "1"],

//3) HTML box definiálása
defineheader: '<div class="headerbar"><a href="#" onClick="javascript:interstitialBox.closeit(); return false"><img src="closebox.png" alt="" width="30" height="30" border="0" /></a></div>',

//4) Süti beállítás (név és elérés)
cookiesetting: ["displaycookie-1-ora", "path=/"],

//5) bust caching
ajaxbustcache: true,

//6) Scrollbarok letiltása (Böngésző függő lehet)
disablescrollbars: true,

//7) Automatikus elrejtés, ha kell (0 = kikapcsolva)
autohidetimer: 0,

////Ezt itt ne nagyon piszkáld///

ie7: window.XMLHttpRequest && document.all && !window.opera,
ie7offline: this.ie7 && window.location.href.indexOf("http")==-1, //IE7 ellenőrzés
launch:false,
scrollbarwidth: 16,

ajaxconnect:function(url, thediv){
var page_request = false
var bustcacheparameter=""
if (window.XMLHttpRequest && !this.ie7offline) // Ha Mozzilla, IE7, Szafari, stb
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // ha IE6
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
interstitialBox.loadpage(page_request, thediv)
}
if (this.ajaxbustcache) //ha bust caching külső lap
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
},

loadpage:function(page_request, thediv){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
document.getElementById("interContent").innerHTML=page_request.responseText
}
},

createcontainer:function(){
//write out entire HTML for Interstitial Box:
document.write('<div id="interContainer">'+this.defineheader+'<div id="interContent"></div></div><div id="interVeil"></div>')
this.interContainer=document.getElementById("interContainer") //reference interstitial container
this.interVeil=document.getElementById("interVeil") //reference veil
this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
},


// MOD showdelay:3000,
showdelay:1,

showcontainer:function(){
if (this.interContainer.style.display=="none") return //if interstitial box has already closed, just exit (window.onresize event triggers function)
var ie=document.all && !window.opera
var dom=document.getElementById
var scroll_top=(ie)? this.standardbody.scrollTop : window.pageYOffset
var scroll_left=(ie)? this.standardbody.scrollLeft : window.pageXOffset
var docwidth=(ie)? this.standardbody.clientWidth : window.innerWidth-this.scrollbarwidth
var docheight=(ie)? this.standardbody.clientHeight: window.innerHeight
var docheightcomplete=(this.standardbody.offsetHeight>this.standardbody.scrollHeight)? this.standardbody.offsetHeight : this.standardbody.scrollHeight
var objwidth=this.interContainer.offsetWidth
var objheight=this.interContainer.offsetHeight
this.interVeil.style.width=docwidth+"px" //set up veil over page
this.interVeil.style.height=docheightcomplete+"px" //set up veil over page
this.interVeil.style.left=0 //Position veil over page
this.interVeil.style.top=0 //Position veil over page
this.interContainer.style.left=docwidth/2-objwidth/2+"px" //Position interstitial box
var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+5+"px" //Position interstitial box
this.interContainer.style.top=Math.floor(parseInt(topposition))+"px"
if (this.autohidetimer && parseInt(this.autohidetimer)>0 && typeof this.timervar=="undefined")
this.timervar=setTimeout("interstitialBox.closeit()", this.autohidetimer*1000)
var oop=this;
setTimeout(function(){
oop.interVeil.style.visibility="visible" //Show veil over page
oop.interContainer.style.visibility="visible" //Show interstitial box
},oop.showdelay);
},

closeit:function(){
this.interVeil.style.display="none"
this.interContainer.style.display="none"
if (this.disablescrollbars && window.XMLHttpRequest) //if disablescrollbars enabled and modern browsers- IE7, Firefox, Safari, Opera 8+ etc
this.standardbody.style.overflow="auto"
if (typeof this.timervar!="undefined") clearTimeout(this.timervar)
},

getscrollbarwidth:function(){
var scrollbarwidth=window.innerWidth-(this.interVeil.offsetLeft+this.interVeil.offsetWidth) //
this.scrollbarwidth=(typeof scrollbarwidth=="number")? scrollbarwidth : this.scrollbarwidth
},

hidescrollbar:function(){
if (this.disablescrollbars){ //if disablescrollbars enabled
if (window.XMLHttpRequest) //if modern browsers- IE7, Firefox, Safari, Opera 8+ etc
this.standardbody.style.overflow="hidden"
else //if IE6 and below, just scroll to top of page to ensure interstitial is in focus
window.scrollTo(0,0)
}
},

dotask:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
},

initialize:function(){
this.createcontainer() //write out interstitial container
this.ajaxconnect(this.displayfiles[Math.floor(Math.random()*this.displayfiles.length)], this.interContainer) //load page into content via ajax
this.dotask(window, function(){interstitialBox.hidescrollbar(); interstitialBox.getscrollbarwidth(); setTimeout("interstitialBox.showcontainer()", 100)}, "load")
this.dotask(window, function(){interstitialBox.showcontainer()}, "resize")
}
}

/////////////End of interstitialBox object declaration here ////////////////////////////////

function getCookie(Name){
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return null
}

function setCookie(name, value, hours){
var expireDate = new Date()
//set "expstring" to either an explicit date (past or future)
if (typeof hours!="undefined"){ //if set persistent cookie
var expstring=expireDate.setHours(expireDate.getHours()+parseInt(hours))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; "+interstitialBox.cookiesetting[1]
}
else //else if this is a session only cookie setting
document.cookie = name+"="+value+"; "+interstitialBox.cookiesetting[1]
}


var stitialvars=new Object() //temporary object to reference/ shorthand certain interstitialBox properties
stitialvars.freqtype=interstitialBox.displayfrequency[0] //"chance" or "cookie"
stitialvars.cookieduration=interstitialBox.displayfrequency[1] //"session" or int (integer specifying number of days)
stitialvars.cookiename=interstitialBox.cookiesetting[0] //name of cookie to use


if (stitialvars.freqtype=="chance"){ //IF CHANCE MODE
if (Math.floor(Math.random()*interstitialBox.displayfrequency[1])==0)
interstitialBox.launch=true
}
else if (stitialvars.freqtype=="cookie" && stitialvars.cookieduration=="session"){ //IF "SESSION COOKIE" MODE
if (getCookie(stitialvars.cookiename+"_s")==null){ //if session cookie is empty
setCookie(stitialvars.cookiename+"_s", "loaded")
interstitialBox.launch=true
}
}
else if (stitialvars.freqtype=="cookie" && typeof parseInt(stitialvars.cookieduration)=="number"){ //IF "PERSISTENT COOKIE" MODE
if (getCookie(stitialvars.cookiename)==null || parseInt(getCookie(stitialvars.cookiename))!=parseInt(stitialvars.cookieduration)){ //if persistent cookie is empty or admin has changed number of days to persist from that of the stored value (meaning, reset it)
setCookie(stitialvars.cookiename, stitialvars.cookieduration, stitialvars.cookieduration)
interstitialBox.launch=true
}
}

if (interstitialBox.launch)
interstitialBox.initialize()
</script>

</head>

<body>


TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM TARTALOM


</body>
</html>

Ez egy sima felugró ablak popup, ami egy óránként jelenik meg.

További kérdéseket tehettek fel kommentben, illetve ajánlhattok másfajta megoldásokat is javascript felugróablak vagy contentgate témában!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.