WebDevolopment e Firefox.. l'erede di IE per l'incompatibilità?

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Arkantos01
00domenica 31 dicembre 2006 18:47
Mi rivolgo a tutti coloro che sviluppano siti internet... riscontrate problemi?

Io sono incappato in un problema relativo al DHTML, avevo una pop-up in DHTML col tasto chiudi che richiamava una linea di Javascript. Funzionava con tutti i browser anche su vecchi PC, tranne che con Firefox, qualsiasi versione.
Ho dovuto usare un javascript ben più pesante.

Voi riscontrate problemi di questo tipo?

PS: Esiste un software che permetta di switchare velocemente tra i vari motoro dei browser (un po' come fa l'estensione IE Tab di FF che utilizza il core di IE dentro ad una scheda di FF).
Etabeta3030
00lunedì 1 gennaio 2007 03:27
forse dipende dalla versione di plug-in java che ha il tuo firefox... ci dai un link a una pagina con questo script dove poter fare il confronto?
Io riscontro molte diversità fra i due browser, ma riguardano tutte la lettura più o meno letterale dei css, e il fatto che IE vede alcune cose (per es la scrollbar colorata) e firefox no. Alcuni javascript poi sono indicati per IE e non per MF, e faccio fatica a trovare quelli che soddisfano entrambi (tipo lo sliding-image, o funziona per uno o per l'altro spesso). Il problema più grosso finora è il corpo del testo (font-size) quando è posto in percentuale. Mi sembra che l'ereditarietà faccia variare anche di molto le dimensioni da uno all'altro e spesso non è facile capire il perchè.
aessenet
00mercoledì 3 gennaio 2007 23:54
> [...] Voi riscontrate problemi di questo tipo?

Purtroppo sono problemi che continuano e continueranno a ripresentarsi, perchè gli interpreti javascript dei due browser sono differenti.

La soluzione più semplice e veloce è quella di riempire di if(..) il nostro codice, con il risultato di duplicare gran parte delle istruzioni, rendendo il tutto meno mantenibile (è sicuro che una volta o l'altra ci si dimenticherà di aggiornare uno dei due rami dell'if...).

La soluzione più elegante (ma richiede tempo e un po' di conoscenza di programmazione ad oggetti) per risolvere i problemi è quella di crearsi delle proprie classi javascript che risolvano al proprio interno i problemi di compatibilità tra i browser.

Google, ad esempio, per risolvere i problemi di incompatibilità nell'accesso ai dati contenuti in file xml, ha creato una classe GXML, che permette di accedere ai dati di un documento xml in modo unico, indipendente del browser.
E' ovvio che il codice della classe GXML conterrà degli if(..), ma saranno tutti contenuti al suo interno, permettendo di mantenere pulito e leggibile il codice della nostra applicazione.
Così facendo si appesantisce un po' il peso (in KB) del nostro codice, ma si guadagna molto in termini di comodità di utilizzo.

In sostanza in un modo o nell'altro il problema va comunque risolto (non c'è una scappatoia). Il punto è dove risolverlo, ovvero a quale parte di codice assegnare la responsabilità di risolverlo.

Modificato da aessenet 03/01/2007 23.55
zzz
00lunedì 15 gennaio 2007 01:05
Ciao a tutti [SM=x53911]

Per evitare problemi di incompatibilità di qualsiasi tipo, è sempre utile scriversi a mano quello di cui si ha bisogno e facendo riferimento ogni tanto a: http://www.w3.org/ anche se non è di facile lettura per i neofiti...

In realtà si può fare quasi tutto senza usare if annidati che identificano il tipo di browser, cosa che in genere cerco di evitare come la peste di solito, e cercare di creare uno script che funzioni ovunque.

In genere se si usa il DOM, non si hanno tanti problemi e si riesce a fare veramente tutto indipendentemente dal browser. Purtroppo è abbastanza complesso, e ancora peggio browser come IE propongono (o almeno lo hanno fatto in passato) scorciatoie non standard, es: innerHTML (assolutamente da evitare, create i nodi "a mano" con il DOM, è molto piu veloce, e funziona ovunque)

[SM=x53911]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 11:52.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com