Problemi con Safari

Ciao a tutti.

Sto programmando un sito. Lo trovate all’indirizzo

http://diem1.ing.unibo.it/meccanica/

Funziona come dovrebbe su Firefox e su IE, ma Safari (e anche Opera) mi
danno dei problemi. In pratica provate a cliccare sulla voce staff (o
Research) nel menu di sinistra più volte. Metre Firefox produce sempre
lo stesso risultato, Safari presenta una pagina aleatoria, si potrebbe
usare per il superenalotto! Non riesco a capire il problema.

In pratica utilizzo una funzione Javascript che prima mi carica una
pagina con un elenco ordinato di

e poi li riempie con alcune
pagine .xml a seconda degli argomenti passati alla funzione.

Sono impazzito a cercare un debugger per Safari, alla fine ho installato
quello con Webkit. Però mi dà solo tre errori nella pagina iniziale, e
nessun errore qunado clicco su Staff. Non riesco a capire.

Un altro fenomeno strano e che, se carico la pagina, poi vado in un
altro indirizzo e quindi torno indietro, spesso il sito funziona come
dovrebbe. Se aggiorno però siamo daccapo.

Per favore aiutate un povero inetto del web! Grazie mille

Michele

Michele Conconi wrote:

In pratica utilizzo una funzione Javascript che prima mi carica una
pagina con un elenco ordinato di

e poi li riempie con alcune
pagine .xml a seconda degli argomenti passati alla funzione.

Sei sicuro di usare soltanto funzioni Prototype per accedere al DOM?

Ho visto che ogni tanto, per esempio, usi

$(elenco[j]).innerHTML = str;
invece di
$(elenco[j]).update(str);

o

$(prevPage).className = ‘’;
al posto di
$(prevPage).removeClassName(’…’);

Non sono certo che il problema sia in queste particolari funzioni, ma
esaminare tutto il tuo codice mi richiederebbe un tempo che non ho.

In particolare, stai attento all’uso diretto di attributi degli elementi
DOM.
A me hanno spesso causato problemi di compatibilita’.

Claudio

Intanto grazie per avermi risposto. Come avrai capito sono un
autodidatta alle primissime armi, percui non ho capito subito il senso
dei tuoi commenti. Però stimolato ho cercato un pò in giro.

Ho aggiornato il Prototype.js all’ultima versione e introdotto le
modifiche che mi hai suggerito. E’ interessante che non sia cambiato il
comportamento del sito ne’ su Firefox ne’ su Safari.

Guardando meglio il WebInspector di Safri ho visto che il problema è il
seguente. Io ho un elenco di div, tipo

...

e una funzione di Javascript che li dovrebbe riempire con i
corrispettivi files. Il problema è che in alcuni div non viene proprio
caricato nessun contenuto, senza nessuna ripetitibilità . Da cosa
potrebbe dipendere secondo te?

Il codice in question è tipo

setContentInList(id1,subMenu.AssistantProfessor[‘0’],‘AssTitle’);
setContentInList(id1,subMenu.AssistantProfessor[‘1’],‘Ass1’);
setContentInList(id1,subMenu.AssistantProfessor[‘2’],‘Ass2’);…

dove

function setContentInList(id1,A,B)
{
var url = ‘xml/’+id1+’/’+A+’.xml’;
var comp = function(t){setMyContent(t, B);}
var error = function(){alert(‘errore’);}
var myAjax = new Ajax.Request(url,{method:‘get’,onSuccess:comp,
onFailure:error});
}

e

function setMyContent(t, id){
var str = t.responseText;
var el = $(id).update(str);;
}

Ti ringrazio fin d’ora per quasiasi suggerimento mi potrai dare.

Michele

Michele,

il problema potrebbe essere un po’ ovunque.

Non so come si faccia con WebInspector, ma hai provato a guardare il
contenuto delle richieste ricevute dal server e quello delle risposte?
Il punto dove estrai il responseText sembra l’ideale per fare del
debugging. Tra l’altro se googli Safari responseText trovi delle cose
interessanti, come ad esempio

Può anche darsi che Safari sia particolarmente schizzinoso sui contenuti
che riceve e li butti via se c’è qualcosa che non va.

E casomai quella pista non portasse da nessuna parte, facciamo un passo
indietro: le richieste arrivano al server? Controlla nei log.

Ciao
Paolo