[Web2.0] Scriptaculous e Internet Explorer

Andrea Franceschini therealmorpheu5 a gmail.com
Mar 13 Feb 2007 18:18:42 CET


Salve a tutti. Nella mia totale ignoranza dei framework AJAX, ho
scelto Scriptaculous per la sua integrazione di Prototype ed effetti
grafici che mi sembra buona, e soprattutto perché è un framework, cosa
che non mi obbliga a barcamenarmi tra XMLHttpRequest e quell'altro
coso ActiveX che non ricordo neanche come si chiami.

Ora il problema mio è questo. In principio, facevo le mie richieste
usando l'API di Scriptaculous e il problema era che la notifica di
successo/insuccesso dello script PHP non sempre veniva ricevuta dal
browser, ma questo perché usavo una callback che non ricordo neanche.
Fatto sta che l'ho cambiata con onSuccess. Quindi la funzione che uso
ora è

function togglePayment(payment) {
	var req = new Ajax.Request(
		"http://casper/ajax/server.php",
		{ method: 'get',
		  parameters: 'action=togglePayment&parm='+payment,
		  asynchronous: true,
		  onLoading: function () {
			$('status').innerHTML = "Cambio stato al pagamento "+payment+"...";
		  },
		  onSuccess: function (transport) {
			$('status').innerHTML = "Fatto";
			if($('pagamento_'+payment).className == "pagato") {
				$('pagamento_'+payment).className = "nonpagato";
			} else {
				$('pagamento_'+payment).className = "pagato";
			}
		  },
		  onFailure: function (transport) {
			$('status').innerHTML = transport.responseText;
		  }
		}
	)
}

Ora, con Firefox tutto ha cominciato ad andare a meraviglia ma oggi
m'è preso di verificare che funzionasse anche con Explorer (e ho
installato il 7) e indovinate? Non va -.-

Quello che succede è che nella zona in cui compaiono i messaggi di
stato, a volte (molte volte), resta fisso "Cambio stato al pagamento
N..." e la richiesta non viene mai completata dallo script PHP, quindi
non torna nemmeno mai indietro alcuna notifica. Ora, posto che lo
script PHP se chiamato sia stand alone che da Firefox via JS funziona
benone, cosa c'è che non va con IE7? Non voglio pensare al IE6... uso
Scriptaculous 1.6.5 che include Prototype 1.5.0_rc1...


Maggiori informazioni sulla lista Web2.0