Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    10

    problema con javascript e popup

    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.

  2. #2
    ..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..

    che vuol dire la prima serie di popup? quante ne deve aprire ogni volta?

    da quello che ho capito io, in parole molto povere:
    hai una funzione che deve aprire una popup ogni tot tempo, giusto?

    window.setTimeOut('apriPopUp()',intervallo in millesimi di secondo)

    se no non c'ho capito una mazza
    il pranzo fa venire sonnolenza uaz uaz..
    ciao
    ----------------------
    i rulez.-.dovrebbero mettere "pippo" come parola riservata in tutti i linguaggi

    The Cyberpunk System One
    http://www.geocities.com/notoleranceforyou/Hymagition.html

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    if(!window.opener) {window.open("<?php echo $url;?>").blur(); window.focus();}

    se non c' è opener (= non è in popup) apre la popup, se ha un opener non la apre,
    ciao

  4. #4
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    10
    Salve,
    per prima cosa grazie per le risposte.
    Ho sostituito il codice originale con quello che Xinod mi hai postato

    if(!window.opener)
    {
    window.open("<?php echo $url;?>").blur(); window.focus();
    }

    ma ora praticamente non si apre più alcuna popup.
    L'intenzione sarebbe quella di far aprire solo una prima finestra che, anche se contiene a sua volta il richiamo allo script java dovrebbe non lanciare la sua popunder.

    Ribadendo la mia ignoranza con javasrcipt, vorrei chiederti di farmi un'esempio pratico.
    per esporre meglio il problema, ti posto la pagina php in cui e' annidato lo script.

    ################################################## ########

    <?
    if($uid == "") exit;
    $htref=$HTTP_REFERER."|".$HTTP_USER_AGENT."|".$REM OTE_PORT."|".$REQUEST_METHOD."|".$QUERY_STRING; require "conf/sys.conf";
    require "lib/mysql.lib";
    require "lib/ban.lib";
    require "lib/bann.lib";

    $d_url = get_ban($DURL_P);
    function go($url="") {
    global $d_url;
    if (!$url) $url=$d_url;
    {
    ?>

    // Inizio Codice Popunder

    if(!window.opener)
    {
    window.open("<?php echo $url;?>").blur(); window.focus();
    }

    <?
    }

    }

    $db = c();

    if (!$ipfseconds) $ipfseconds=300;
    $sql_cur_period2 = "and idate>=".(time()-$ipfseconds);
    if(!e(q("select id from previews where ifrom='$REMOTE_ADDR' $sql_cur_period2"))) {go();exit;}

    ECC... ECC... ECC...

    ################################################## ##########

    Grazie.

  5. #5
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    10
    chiedo scusa per la risposta di prima, credo che invece la soluzione che mi hai postato funziona!
    praticamente, se la pagina aperta e' un finestra creata dalla pagina principale, non apre la popup. E' giusto?

    Sto testando il tutto e sembra funzionare perfettamente.
    Grazie.

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    esattamente,
    ciao ciao

  7. #7
    Utente bannato
    Registrato dal
    Dec 2000
    Messaggi
    10
    Ciao Xinod
    Vorrei chiedere a te o a chiunque vorrà rispondermi, un'ulteriore chiarimento e cioè:
    ho provato a modificare il codice che mi hai postato (e che funziona benissimo)per ampliare la funzione di blocco del popups anche nel caso in cui, la pagina che contiene il codice, viene aperta in una frame:

    if ( (!window.opener) || (!window.frames) )
    {
    window.open("<?php echo $url;?>").blur(); window.focus();
    }

    ma sembra non funzionare, perchè mi lancia ugualmente una popups, nel caso in cui la pagina è contenuta in un frame.

    dove'è che sto sbagliando?

    per testare l'errore..
    http://www.scambio-traffico.com/fram...w.biribiri.net

    Grazie e buon lavoro a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.