Compatibilità sono due lettere…

La compatibilità tra browser diversi è uno dei problemi maggiori nei confronti dei quali gli sviluppatori di WebApps di devono confrontare quotidianamente. Un browser che implementa qualcosa, l’altro che no, o che la implementa diversamente. Necessità di codice customizzato, generato a partire da informazioni che non sono mai sicure… insomma, un vero casino.

Ma a volte, sarebbe sufficiente davvero un briciolo di buona volontà… Questa mattina siamo stati presso un grosso cliente a consegnare alcune macchine client GNU/Linux, basate su DSL ed equipaggiate con il browser SeaMonkey, che partono da una eprom flash su macchine fan-less.

Fatti i test previsti, constatato che tutto funziona correttamente, siamo andati da un altro cliente (da cui mi trovo tutt’ora). Dopo meno di 3 ore, chiamano dal grosso cliente dicendo che “qualcosa non funziona”.

Sotto la guida di uno di loro, riesco a raggiungere il form “html + javascript” su cui SeaMonkey tira le quoia. Firebug alla mano, scopro che il problema è un errore, legato ad una funzione che non esiste:

document.getElementById("IdName").click()

Fruga fruga fruga, scopro che “IdName” è un tag di tipo Anchor, e che l’implementazione del click su questi elementi non è standard, ma implementata da Microsoft Internet Explorer, eseguendo il contenuto della sezione “onClick” legata a quel tag. Ottimo. Splendido. L’applicazione non si può modificare (roba della casa madre), e quindi quella parte del sito non potrà essere utilizzata per lo scopo previsto (pare si possa farne a meno).

E sapete cosa sarebbe stato sufficiente fare per far funzionare il tutto sui due browser? Chiamare la funzione “onClick” invece che “click”…

Pubblicità

Un pensiero su “Compatibilità sono due lettere…

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.