![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
#3
| |||||||
| |||||||
|
|
Faccio una chiamata xmlhttp, ricevo il risultato (verificato con responseText, tutto ok) |
|
xml (oggetto MyObj=XmlHttp.responseXML): Response><ERR_UTENTE_NOT_EXIST>Codice cliente o password errata, oppure accesso al sito non consentito.</ERR_UTENTE_NOT_EXIST></Response La function la chiamo con: Err=GetNodeText(MyObj.childNodes,"ERR_UTENTE_NOT_E XIST"); |
|
mi dicono che con win98 - IE5 segnala errore. Ho fatto delle verifiche, praticamente risulta che con Gecko e IE6 la MyObj.childNodes.length==1, mentre con IE5 è = 0 (e quindi restituisce sempre null). |
|
La cosa più strana è che 2 clienti mi hanno detto che con win98 e IE *AGGIORNATO ALLA 6* segnala lo stesso problema. |
|
Qualcuno ha esperienza su ciò e sa dirmi cosa c'è che non va? |
|
io intanto continuo con i test (ma non saprei bene come sostituire la childNodes...) |
|
e se occorre fare la chiamata in modo diverso vorrebbe dire non cambiare solo la function ma cambiare tutte le chiamate del sito (dei siti...) :-/ |
#4
| ||||||
| ||||||
|
|
Per fare test su IE ti conviene verificare in questo modo: alert( myobj.responseXML.xml ); bravo! qua c'è qualcosa che non va: |
|
xml (oggetto MyObj=XmlHttp.responseXML): Response><ERR_UTENTE_NOT_EXIST>Codice cliente o password errata, oppure accesso al sito non consentito.</ERR_UTENTE_NOT_EXIST></Response La function la chiamo con: Err=GetNodeText(MyObj.childNodes,"ERR_UTENTE_NOT_E XIST"); Noto che ti lasci ancora influenzare troppo dalla sintassi Microsoft VB-Like (che ha ereditato anche C#) :P oh yes :-) (questa poi la ho fatta tipo 2-3 anni fa, adesso userei la |
|
GetNodeText( myobj.documentElement.childNodes, "ERR_UTENTE_NOT_EXIST" ); riprendendo il test sopra: |
|
Nelle verifiche di cui parli, guarda cosa ti restituisce IE5 con responseXML.xml, e vedi il numero di childNodes del documentElement (root). vedi sopra: responseXML.xml stringa vuota, documentElement è un oggetto ma |
|
La cosa più strana è che 2 clienti mi hanno detto che con win98 e IE *AGGIORNATO ALLA 6* segnala lo stesso problema. Dovresti sapere bene che il browser e le DOM XML API sono due cose distinte, esattamente come lo è lo script engine. sì, ma l'utente mediamente installa IE6 così come scaricato di default, e |
|
e se occorre fare la chiamata in modo diverso vorrebbe dire non cambiare solo la function ma cambiare tutte le chiamate del sito (dei siti...) :-/ Cioé? Immagino faccia parte di una libreria, una volta che modifichi il corpo della funzione, non dovrebbe impattare troppo come cambiamento, no? sì, ma la function (che ora non sto più considerando) è una sola, mentre le |
#5
| |||
| |||
|
|
alert( myobj.responseXML.xml ); dimenticavo: alert(XmlHttp.responseText) dà la corretta stringa in |
#6
| |||||||||||
| |||||||||||
|
|
Per fare test su IE ti conviene verificare in questo modo: alert( myobj.responseXML.xml ); bravo! qua c'è qualcosa che non va: var MyObj=XmlHttp.responseXML; alert(typeof MyObj) => object alert(MyObj.xml) => IE6 mi restituisce l'xml come ho indicato (All'inizio c'è <?xml version="1.0"?>, non è che è questo che gli fa casini a IE5?); IE5 restituisce stringa vuota. |
|
Non riesco bene a capire ... |

|
Noto che ti lasci ancora influenzare troppo dalla sintassi Microsoft VB-Like (che ha ereditato anche C#) :P oh yes :-) (questa poi la ho fatta tipo 2-3 anni fa, adesso userei la minuscola iniziale per rispetto a js e a Zer0... :-)) |

|
riprendendo il test sopra: alert(typeof MyObj.documentElement) => object alert(typeof MyObj.documentElement.childNodes) => IE6 object, IE5 "documentElement non è un oggetto" ... |
|
Nelle verifiche di cui parli, guarda cosa ti restituisce IE5 con responseXML.xml, e vedi il numero di childNodes del documentElement (root). vedi sopra: responseXML.xml stringa vuota, documentElement è un oggetto ma sembrerebbe a naso null, anzi testo: alert(MyObj.documentElement==null) => IE6 false, IE5 true |
|
La cosa più strana è che 2 clienti mi hanno detto che con win98 e IE *AGGIORNATO ALLA 6* segnala lo stesso problema. Dovresti sapere bene che il browser e le DOM XML API sono due cose distinte, esattamente come lo è lo script engine. sì, ma l'utente mediamente installa IE6 così come scaricato di default, e dovrebbe aggiornare anche le DOM XML API... |
|
Cioé? Immagino faccia parte di una libreria, una volta che modifichi il corpo della funzione, non dovrebbe impattare troppo come cambiamento, no? sì, ma la function (che ora non sto più considerando) è una sola, mentre le chiamate sono in parecchi file js sparsi qua e la ... sarebbe molto più comodo modificare la function (che è una sola) anziché dover modificare magari 50 chiamate (e per ognuna fare gli opportuni test). |

|
sto pensando di risolvere il problema a monte: [cut] (tra l'altro dovrei modificarla per prepararmi per IE7, penso) |
Come già detto tempo fa in qualche reply a "non|
L'altra alternativa che mi è venuta in mente è di permettere all'utente di forzare (con un cookie, o come flag nel suo record) il non-uso di xmlhttp (che risolverebbe anche eventuali strani problemi, tipo con firewall bizzarri, internet security e altre cosette particolari. Mi è capitato 2 settimane fa un cliente con firefox dove xmlhttp non andava e non c'è stato verso di farlo andare, alla fine mi ha detto che era norton internet security). ma mi scoccia un po'. |
|
Infine: mi sovviene che c'erano problemi anche con safari; tempo fa qualcuno (sembro la carta?) mi aveva indicato il perché ma non trovo più la stampa che mi ero fatto e il messaggio non lo trovo con google, |

|
magari il problema era lo stesso? boh... |

#7
| ||||
| ||||
|
|
alert(MyObj.xml) => IE6 mi restituisce l'xml come ho indicato (All'inizio c'è <?xml version="1.0"?>, non è che è questo che gli fa casini a IE5?); IE5 restituisce stringa vuota. Perfetto. Significa che le DOM API non hanno interpretato correttamente l'XML ricevuto come tale. Fatti dire il perché: if (myobj.parseError.errorCode != 0) { alert(myobj.parseError.reason); |
|
sì, ma l'utente mediamente installa IE6 così come scaricato di default, e dovrebbe aggiornare anche le DOM XML API... Non mi pare, credo che si porti dietro solo lo script engine aggiornato e non l'MSXML (cosa che invece accade con le installazioni di Office, se non ricordo male). :-O questa non la sapevo ... quindi win98 con IE6 ha comunque le vecchie |
|
(tra l'altro dovrei modificarla per prepararmi per IE7, penso) Si, infatti nei miei post successivi a quel primo in cui la indicavo, ho invertito le condizioni Come già detto tempo fa in qualche reply a "nonmi ricordo chi". Tra l'altro quando la modificai mi pare di averti avvertito di aggiornare il codice sul sito, ma evidentemente non l'hai fatto :P No :-/ |
|
magari il problema era lo stesso? boh... No, dubito. Penso me ne ricorderei, e cmq lui non mi pare il tipo da perdere il capo dietro a IE5 su Win98.. è già tanto se supporta/sopporta IE6... ![]() ( e per certi versi, come dargli torto... ) no, sicuramente la soluzione la aveva postata per safari, ma magari era lo |
#8
| |||
| |||
|
|
cazzo avevo fatto 2000 test per fargli accettare tutti i caratteri, e alla fine il latin9 era quella che funzionava egregiamente ... avrei risolto così: |
#9
| |||
| |||
|
|
avrei risolto così: soluzione finale (aggiunto controllo esistenza oggetto parseError |
#10
| |||
| |||
|
|
Può ovviamente essere generalizzata per rimuovere il tag che contiene la proprietà encoding ma vado di fretta. |
![]() |
| Thread Tools | |
| Display Modes | |
| |