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.