Ferestre Popup de neoprit - Securitatea Informatica

Ferestre Popup de neoprit

Cele mai multe pop-up blockers se bazeaza pe capacitatea lor de a intercepta apelurile JavaScript pentru functiile de manipulare a fereastrei, in scopul de a opri deschiderea de pagini in ferestre noi. Acest truc ascunde un div si apoi il face sa incarce html extern si il muta pe pagina … foloseste CSS şi JavaScript. Frumusetea acestui fapt este ca toate tehnicile utilizate sunt necesare pentru ca AJAX sa functioneze astfel incat nimeni nu va crea un pop-up blocker care sa opreasca aceste pop-up-uri. Cel putin in viitorul apropiat.

In primul rand aveti nevoie de un div pe care sa il transformati intr-un pop-up. Cel mai bun loc pentru a-l pozitiona este in partea de jos a paginii dumneavoastra chiar inainte de tag-ul /body.

<div class=divp id=divpu name=divpu>This is invisible</div>

Apoi, CSS-ul care il face invizibil … acest cod ar trebui sa fie adaugat in orice fisier stil pe care il aveti inclus sau definit expres.

<style>
#divpu{ position: absolute; top:0px; left:-500px; z-index:2; width:450px; height:270px; visibility:hidden;}
</style>

Acest lucru va ofera un div care este ascuns in stanga paginii, unde nu puteti face scroll, este, de asemenea, ascuns si are un z-index mare astfel incat acesta va aparea peste orice altceva atunci cand il vom muta. Avem, de asemenea, limitata latimea la o dimensiune normala iar atunci cand vom scrie pagina trebuie să ne amintim aceasta dimensiune.

Urmatoarea etapa este sa afisam div-ul. Pentru aceasta avem nevoie de javascript.

<script>
var aptimer=29;
var hflag=1;
function revealit(){
myhtml='<table cellpadding=20 bgcolor=grey width=440 align=center><tr><td><h2 align=center>Pop UP!</h2>Bet your blocker did not block this!<P>  </td> </tr> </table><center><form><input type=" button" name="close" value="Close this window" onclick="hideit()" ></form></center>';
document.getElementById('divpu').innerhtml=myhtml;
var cont = document.getElementById('divpu');
cont.innerHTML = myhtml;
if (navigator.appName.indexOf("Microsoft")!=-1) {
toppos = document.body.clientHeight / 2 - 135;
leftpos = document.body.clientWidth / 2 - 225;
}else{
toppos = window.innerHeight / 2 - 135;
leftpos = window.innerWidth / 2 - 225;
}
document.getElementById('divpu').style.top = toppos;
document.getElementById('divpu').style.left = leftpos;
document.getElementById('divpu').style.visibility = 'visible';
hflag=0;
}
function hideit(){
var cont = document.getElementById('divpu');
cont.innerHTML = ' ';
document.getElementById('divpu').style.top = 0;
document.getElementById('divpu').style.left = -500;
document.getElementById('divpu').style.visibility = 'hidden';
hflag=1;
}
function timep(){
if (aptimer>35){
	if (hflag>0){
		revealit();
	}
	aptimer=0;
}
aptimer=aptimer+1;
setTimeout ( 'timep();', 1000 );
}
</script>

Deci avem o subrutina de afisare care este chemata de catre un timer (timep), care tickaie o data pe secunda. Pentru a incepe avem nevoie de niste cod in tag-ul body pentru a apela timer-ul pentru prima data (apoi acesta este solicitat in fiecare secunda).

<body onload="timep()">

Mult succes cu pop-upurile.

Twitter Digg Delicious Stumbleupon Technorati Facebook


Nici un comentariu inca... Fii primul care lasa un comentariu!

Lasa un raspuns

This site is protected by Comment SPAM Wiper. This site is protected by WP-CopyRightPro