Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [tecnico] funzionamento pop-up (sto impazzendo)

    ciao a tutti, scivo qui perchè sto impazzendo su una questione banalissima, che credo dipenda dal funzionamento interno dell'interprete javascript.

    in pratica il mio obbiettivo è controllare se una popup è stata effettivamente aperta, nonostante i popup blocker.

    LA PRIMA SOLUZIONE:
    - setto una var nella opener a False
    - setto opener.var = true nella popup
    - con un certo delay controllo la var nello stesso js che ha aperto la popup. se è False, mando l'alert.

    Questo va solo finché tengo aperta la opener. Quando questa non c'è più perchè è stata chiusa, in Mozilla l'assegnazione della var di una opener inesistente mi blocca tutti gli script successivi. ( ) In Explorer invece vanno lo stesso.

    LA SECONDA SOLUZIONE, per ovviare al problema mozilla dell prima:
    - creo una var nella popup
    - con un delay controllo se esiste o è Undefined e agisco di conseguenza.

    Questa non va, sembra che con il popup blocker attivato, tutto il codice successivo al window.open bloccato venga inibito. non mi fa neanche un document.write() semplicissimo. se poi metto un alert che stampa 'ciao' me lo svolge prima ancora di bloccare la popup.

    COME SI PUO' AGIRE?

    Ecco il codice su cui lavoro:

    codice:
    //this.name = 'principale';
    
    //var mjguest_open = 0;
    var imported = 'vecchio_val';
    function mjguest(dir)
    {
    //	page = 'mjguest.php?page=view&start=0';
    	
    	page = 'mjguest.php?page=admin';
    	
    	var w = 600;
    	var h = 597;
    	
    	mjguest = window.open(dir + page, 'mj', 'width='+w+'px,height='+h+'px,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no,copyhistory=no');
    //	winx.close();
    	
    }
    //document.write('ciao')
    
    
    //imported = mjguest_open;
    alert(imported);
    
    function check()
    {
    	imported = mjguest_open;
    	alert(imported);
    	/*
    	if (!window.mjguest.mjguest_open)
    	{
    		alert('no! valore:' + mjguest.mjguest_open);
    	}
    	else
    	{
    		alert('Si! valore:' + mjguest.mjguest_open);
    	}*/
    }
    //setTimeout("check()", 1000);
    
    function shut_down()
    {
    	self.opener = self;
    	self.close();
    }
    
    function anti_blocker()
    {
    	if (mjguest_open == 1)
    	{
    		mjguest.moveTo(((screen.availWidth/2)-(w/2)), ((screen.availHeight/2)-(h/2)));
    		mjguest.focus();
    		shut_down();
    	}
    	
    	else
    	{
    		alert('MJGUEST MESSAGE\n=====================================\n\nThe guestbook needs to be loaded in a popup.\n\nPlease disable any popup blocker and click on the link again.');
    	}
    }
    
    //setTimeout("anti_blocker()", 1000);
    AIUTO!

    ciao,
    jack.

  2. #2
    dovrei esserci riuscito...

    semplicemente con un controllo sull'obj window:

    pop = window.open.....

    if(!pop)
    alert('no win')

    il controllo va però attivato con un delay di almeno 1 secondo. altrimenti il popup blocker non ha ancora agito.


    strano... provai tempo fa questa soluzione e non andava... ma meglio così.

    se ci dovessero essere problemi riscrivo qui.

    ciao,
    jack.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.