Salve,
ecco il mio problema.
Ho attivato un circuito di scambio traffico, dove è possibile utilizzare varie forme di promozione, banners, popunder, popups ecc.. Il programma che gestisce tutto è un php.
Il problema da risolvere si riferisce ai popunder/popup.
Dunque, ogni utente, per cominciare a ricevere traffico, deve aggiungere una stringa di codice html nelle propria home page, o in qualsiasi altra pagina del sito. Ogni volta che un suo utente
giunge in quella pagina, un javascript, richiamato dalla stringa di cui sopra, lancia un popunder contenente la homepage di un altro sito iscritto al circuito. Fino a qui' tutto regolare, il problema si verifica se, nel codice html della pagina visualizzata nel popunder, che con molta probabilità è la pagina utilizzata per lo scambio e quindi contiene a sua volta la stringa html che richiama lo script java, si innesta, come facilmente si riesce ad intuire, una reazione a catena, per cui vengono lanciate una dietro l'altra una serie di popunder.
Ho provato a risolvere il problema, sostituendo il javascript orignale, con uno diverso, che utilizza un cookie e impedisce l'apertura di nuove popups per un periodo di tempo prestabilito. Con questo espediente, purtroppo, il problema e' stato risolto solo a metà, in quanto, la reazione a catena non si blocca, se non dopo il lancio della prima serie di popups, quindi il problema principale resta irrisolto. Sono riuscito inoltre ad evitare l'apertura di piu' finestre, semplicemente identificando la popup con un nome univoco, ma le pagine si susseguono ugualmente, una dopo l'altra, nella stessa finestra.
La mia domanda è questa, e' possibile con un javascript dire al browser che dopo aver lanciato una prima volta la popup denominata ad esempio "finestra1", non deve più aprire altre popup "finestra1" se non dopo un tot di tempo?.
Ho provato a modificare lo script che allego in calce, ottenendo solo risultati negativi, ma sono consapevole che le mie conoscenze di javascript sono limitatissime. Al momento ho rimesso il javascript originale, per dare, a chiunque lo desidera, la possibilità di verificare il problema. Lo script originale che lancia il popunder e' il seguente:
################################################## ######
var adexit = '';
window.open("<?php echo $url;?>").blur(); window.focus();
window.open=adexit;
################################################## ######
quello che ho provato a modificare è questo:
################################################## ######
once("window.open("<?php echo $url;?>")","test", "2 minuti");
window.opener=self
function once(command,id,interval){
var mul = interval.substring(0,interval.indexOf(" "));
mul = parseInt(mul);
interval = interval.substring(interval.lastIndexOf(" ")+1,interval.length);
if (interval == "secondi"){ e = 1000; }
else if (interval == "minuti"){ e = 60000; }
else if(interval == "ore"){ e = 3600000; }
else if (interval == "giorni"){ e = 86400000; }
e = e * mul;
var now = new Date();
var ex = new Date();
ex.setTime(now.getTime() + e);
if (!getCookie(id)){
eval(command);
setCookie(id,"1",ex);
}
}
function setCookie(name, value, expire){
document.cookie = name + "=" + escape(value) + ((expire ==null) ? "" : ("; expires=" + expire.toGMTString()));
}
function getCookie(Name){
var search = Name + "=";
if (document.cookie.length > 0){
offset = document.cookie.indexOf(search);
if (offset != -1){
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(offset, end));
} else {
return "";
}
} else {
return "";
}
}
################################################## ######
Qualsiasi soluzione utile a risolvere il problema, sarà da me oltremodo apprezzata ;)
Per verificare il problema in azione, basta aprire questa pagina:
http://www.biribiri.net
Grazie a tutti e buon lavoro.