Disfuctioning JavaScript

La release seppur beta di IE9 ha portato scompiglio dappertutto. Anche questo blog, la parte che gestisce l’editor online basata su TinyMCE, ha subito qualche dissestamento (?). Ero arrivato a scegliere TinyMCE dopo aver provato un po’ di tutto per due motivi essenziali:

  1. mi sembrava abbastanza stabile e coerente con l’output
  2. supportava correttamente le citazioni non ricorsive

Purtroppo però col tempo anche TinyMCE ha smesso di essere Tiny e capire dove fosse la fonte dei guai è diventato difficile. Aggiungiamoci che il caching Javascript di IE9 è bacato e l’immagine è completa.

Mi son chiesto quanto fosse complicato scrivere un editor che funzionasse con i tre maggiori engine (sorry Courtaud!) e mi son imbattuto in un post interessantissimo. A leggere la descrizione sembrava pure piuttosto banale. Ho trovato poi in rete su codeplex qualcosa che fosse ispirato alla stessa filosofia, basato su jQuery per il quale ho acquistato adeguata familiarità, e che soprattutto fosse senza fronzoli anche senza il supporto per il blockquote: in più la licenza è molto meglio di quella di TinyMCE.

Ho voluto implementare il blockquote ed allora mi son imbattuto contro ostacoli insormontabili per lo meno all’apparenza.

  1. il codice che gestisce la posizione del caret e del testo selezionato non fa (faceva) parte di nessuno standard. Fu introdotto da IE nel passato remoto. Chi venne dopo decise di “standardizzarlo” usando un’interfaccia diversa (questi parrucconi!)
  2. quando si clicca Enter/Invio ogni browser fa a modo suo. Chrome inserisce i DIV, IE inserisce i <p/>, Firefox inserisce <br/> o <p/> a seconda se è premuto il tasto SHIFT o meno
  3. anche un’interfaccia standard o quasi come execCommand è stata implementata in alcuni casi in maniera disastrosa. IE inserisce un blockquote, Firefox un <p con style>, Chrome uno <span>

A complicare le cose la funzionalità particolare di blockquote. Martellando un po’ di codice qua e là sono riuscito a mettere su un’implementazione alla buona seppur abbastanza bacata. Ho deciso di sbirciare nel codice di TinyMCE e ho scoperto che, per difendersi da queste variazioni assurde di implementazione, hanno scritto un engine RTE completamente separato tra l’altro pure molto bene.

Purtroppo il supporto ad IE9, in quanto estremamente frustrante, non è un task molto appealing. Qualcuno ci ha messo una pezza per fortuna, ma parecchi problemi restano.

A questo punto credo che tutte le mie buone intenzioni per jHTMLArea siano completamente irrealistiche e penso ti tornare fra qualche giorno all’ovile, con il capo cosparso di cenere.

-quack

Potrebbero interessarti anche:
Commenti (42): [ Pagina 1 di 2  - più vecchi ]
13. Courtaud
giovedì 23 settembre 2010 alle 8:18 PM - IE 8.0 Windows 7
   

Gianduia purissimo con tonda gentile delle Langhe. Preparati perché dovrai mangiarne a badilate.

   
14. Pinco
giovedì 23 settembre 2010 alle 8:19 PM - IE 9.0 Windows 7
   


Ma sapete mica per quanto è prevista la versione rtm d ie9?

   
15. Pinco
giovedì 23 settembre 2010 alle 8:20 PM - IE 9.0 Windows 7
   


ovviamente volevo dire quando... e sarebbe più corretto dre versione finale, ma quale rtm... devo dormire più!!!

 

... papero ma quando inserirai l'edit dei commenti?

   
16. floo
giovedì 23 settembre 2010 alle 8:23 PM - IE 9.0 Windows 7
   

Secondo me, prima di inizio 2011 non arriverà in versione finale.

   
17. Paperino
giovedì 23 settembre 2010 alle 8:58 PM - chrome 6.0.472.63 Windows 7
   

L'editing dei commenti è una cosa filosoficamente complicata a cui penso di aver trovato una soluzione.

Se permetto di cambiare i commenti all'autore, qualche polemico di passaggio potrebbe approfittarne per cambiare le carte in tavola o creare dei fork nella discussione. Cioé io scrivo A, pippo comincia a replicare, io edito il commento ed è diventato A', ma nel frattempo il commento di pippo appare e caio replica a pippo usando A', generando un rapporto più alto tra metaconversazione e conversazione stessa.

La mia idea: quando pinco pubblica il commento, il commento finisce in una coda di prepubblicazione. Pinco intanto può vedere ed editare/cancellare il commento entro un tempo stabilito (5 min?) oppure definitivamente approvare il commento ed in quel momento diventa pubblico come accade anche alla scadenza dei 5 minuti. Ciò darebbe a Pinco anche il tempo di riflettere sui tony usati.

Che ne penZate?

   
18. floo
giovedì 23 settembre 2010 alle 10:46 PM - IE 9.0 Windows 7
   

Per l'editing di commenti come lo intende Pinco, ci vuole per forza un sistema di registrazione. L'unica soluzione è quella proposta dal papero, coda di prepubblicazione.

   
19. Courtaud
giovedì 23 settembre 2010 alle 11:29 PM - IE 8.0 Windows 7
   

Così però in certe occasioni i commenti si accumulano in preapprovazione e quando vengono pubblicati stanno procedendo in direzioni diverse l'uno dall'altro, 'io ho detto così ma mi accorgo adesso che Tizio ha detto cosà allora correggo il tiro oppure mi inBEEP come una bestia' e anche Tizio si accorge che mentre lui ri-rispondeva Caio ha aggiunto o si è inBEEPpato e allora controcorregge o si contro inBEEPpa.

Poi qui vedo che in genere l'editing è richiesto per correggere orrori di stumpa o link non funzionanti, non credo che ci saranno delle correzioni di merito. Al limite un sistema di controllo di può inserire se dovessero sorgere dei problemi.

   
20. floo
giovedì 23 settembre 2010 alle 11:53 PM - chrome 7.0.517.8 Windows 7
   

Sistema di controllo ortografico? Ce l'hanno tutti i browser, IE a parte. Perché deve smazzarsi il papero? Se Microsoft facesse il piacere di implementarlo, non vi sarebbe bisogno d'altro.

   
21. 0verture
venerdì 24 settembre 2010 alle 1:43 AM - firefox 3.6.10 Windows 7
   

"Gianduia purissimo con tonda gentile delle Langhe"

Per fortuna, pensa se fosse stata la tonda volgare di Ciccio Bastardo

   
22. Mimì
venerdì 24 settembre 2010 alle 5:05 PM - firefox 3.6.10 Windows XP
   

E se al posto di editare si potesse solo aggiungere qualcosa (segnalando l'aggiunta)?
In pratica  basterebbe anche solo che un post con le correzioni apparisse subito dopo il post da correggere.

   
23. Paperino
venerdì 24 settembre 2010 alle 9:28 PM - chrome 6.0.472.63 Windows 7
   

Era un'altra idea che avevo preso in considerazione, rubata dal nostro bug tracking system che permette di aggiungere annotazioni senza modificare. Sto pensando ad un poll, aspettiamo qualche idea e votiamo la migliore. Avessi tempo le implementerei tutte testando quale funziona meglio...

P.S. mi sembra che l'editor per quanto brutto e zoppicante sia abbastanza adeguato alle esigenze di questo blog. Qualcuno ha dovuto per caso battagliare più del solito?

   
24. Courtaud
venerdì 24 settembre 2010 alle 9:32 PM - IE 8.0 Windows 7
   

@floo

Ho un browser in inglese su un sistema in inglese. Il controllo ortografico fa quel che può, poveretto, ma come capirai...

@Paperino:

E' cambiato qualcosa da ieri? Non si incolla più niente, né con Puretext né con senza, né svuotando la cache né riavviando il browser. 

   
25. floo
venerdì 24 settembre 2010 alle 9:49 PM - chrome 7.0.517.8 Windows 7
   

Ho un browser in inglese su un sistema in inglese. Il controllo ortografico fa quel che può, poveretto, ma come capirai...

Opera ero riuscito ad impostarlo, col correttore ortografico in italiano. Con Chrome e Firefox è questione di un attimo. L'unico testardo, ovviamente, è stato Safari. IE proprio non ce l'ha, dunque il problema non si pone.

   
26. Paperino
venerdì 24 settembre 2010 alle 9:54 PM - chrome 6.0.472.63 Windows 7
   

E' cambiato qualcosa da ieri? Non si incolla più niente, né con Puretext né con senza, né svuotando la cache né riavviando il browser. 

Nope. L'unica modifica è del codice che traccia i download per motivi statistici.

   
27. Mimì
venerdì 24 settembre 2010 alle 10:00 PM - firefox 3.6.10 Windows 7
   

P.S. mi sembra che l'editor per quanto brutto e zoppicante sia abbastanza adeguato alle esigenze di questo blog. Qualcuno ha dovuto per caso battagliare più del solito?


Come ho appena scritto nel forum a me i pulsantini non fungono proprio.

Firefox 3.x aggiornato (ma intamarrito d'estensioni) sia su XP che su 7

   
28. floo
venerdì 24 settembre 2010 alle 10:00 PM - chrome 7.0.517.8 Windows 7
   

Su Chrome tutto regolare.

   
29. NickelGreen
venerdì 24 settembre 2010 alle 10:06 PM - IE 9.0 Windows 7
   

Vediamo se funonzia...

   
30. NickelGreen
venerdì 24 settembre 2010 alle 10:08 PM - IE 9.0 Windows 7
   

<<P.S. mi sembra che l'editor per quanto brutto e zoppicante sia abbastanza adeguato alle esigenze di questo blog. Qualcuno ha dovuto per caso battagliare più del solito?>>


Magari dico na bestialità, ma hai provato qualcosa con ajax?

   
31. Courtaud
venerdì 24 settembre 2010 alle 10:38 PM - IE 8.0 Windows 7
   

Credo che sia proprio un problema del mio browser, a giudicare da alcuni fenomeni paranormali appena verificatisi

Ossia: Opera è impazzita e ha iniziato a ricaricare certe pagine in continuazione... e a quel punto il copyncolla funzionava. Ora ho riavviato e va tutto bene tranne che non copyncolla più un tubo. 

Dovrei segnalare la pagina ai loro sviluppatori, mi dai il permesso?

   
32. Paperino
venerdì 24 settembre 2010 alle 11:53 PM - chrome 6.0.472.63 Windows 7
   

@Mimì, grazie guarderò. Provare con tutti i browser è un lavoro troppo certosino per un dislessico

@Courtaud: fai pure, questo blog è pubblico che più pubblico non si può. L'importante è che non tentino un POET attack

   
33. Courtaud
sabato 25 settembre 2010 alle 12:02 AM - IE 8.0 Windows 7
   

Al massimo un LYRIC attack. Credo.

   
34. Courtaud
sabato 25 settembre 2010 alle 12:08 AM - IE 8.0 Windows 7
   

ehm... Io non sto usando IE al momento.

   
35. Paperino
sabato 25 settembre 2010 alle 12:09 AM - firefox 3.6.2 Windows 7
   

Well, il tuo user agent mente: "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; en"

   
36. floo
sabato 25 settembre 2010 alle 12:32 AM - chrome 7.0.517.8 Windows 7
   

Non è che hai qualche plug-in attivo che trucca lo User Agent di Opera?

   
37. Paperino
sabato 25 settembre 2010 alle 12:37 AM - chrome 6.0.472.63 Windows 7
   

@Mimì: ho capito cosa intendi quando dici che i bottoni non funzionano. La formattazione comunque grosso modo va, con un po' di debugging...

Speravo che la 3.3.9.1 di TinyMCE avesse sistemato un po' di problemi ma ce n'è uno molto antipatico per cui tiriamo a campare con quest'editor

   
38. Mimì
sabato 25 settembre 2010 alle 12:22 PM - firefox 3.6.10 Windows XP
   
@Mimì: ho capito cosa intendi quando dici che i bottoni non funzionano.
Grazie per l'interessamento, much appreciated, i bottoni ora funzionano, quote a parte che fa un po' le bizze (ad esempio se scrivo tutto il messaggio e poi seleziono le parti da citare mette in citazione tutto anziché solo il testo selezionato)
Il problema "grosso" (me n'ero dimenticato :$) è che il cursore resta intrappolato nel campo del messaggio e non riesco a passare agli altri campi: Em@il, ecc; né a copiare il testo selezionato nella pagina (sia con ctrl+c che con clic dx)
...non che sia un davvero un grosso problema mettere qualche tag a mano
   
39. 0verture
sabato 25 settembre 2010 alle 1:50 PM - firefox 3.6.10 Windows 7
   

Ma non si può mettere semplicemente un sistema per mettere i tag a mano come nei vecchi forum ?

   
40. Paperino
sabato 25 settembre 2010 alle 7:02 PM - chrome 6.0.472.63 Windows 7
   

@Mimì: provvederò, mi sa che TinyMCE + IE Compatibility mode sembrano la via migliore.

@0verture: passavo più tempo a sistemare i typo nei tag HTML che a scrivere qualcosa di interessante. L'editor HTML è stato un grosso passo avanti in questo blog, c'è solo da subire qualche colpo di assestamento con IE9 finché non diventa mainstream e/o stabile abbastanza.

   
41. 0verture
sabato 25 settembre 2010 alle 7:11 PM - firefox 3.6.10 Windows 7
   

Beh potresti fare una cosa mista come in wordpress: editor html da una parte e scheda che mostra lo stesso messaggio con i tag, così se qualcosa viene storto lo si vede e corregge

   
42. Paperino
lunedì 27 settembre 2010 alle 7:21 PM - chrome 6.0.472.63 Windows 7
   

La discussione sul forum di TinyMCE prosegue proficuamente....... speriam bene!!

   
[ Pagina 1 di 2  - più vecchi ]
Lascia un commento:
Commento: (clicca su questo link per gli smiley supportati; regole di ingaggio per i commenti)
(opzionale, per il Gravatar)