2012-01-23 5 views
5

Ho un problema in cui, periodicamente, non riesco a digitare in alcun input/textareas su Internet Explorer. Al momento sto lavorando principalmente con IE9.Perché a volte non posso digitare nel mio <input> in IE?

Quando faccio clic su un input, viene eseguito il gestore di clic JS (che svuota il testo segnaposto) e viene applicato il css attivo. Tuttavia, il cursore non appare e non riesco a digitare. Se registro un campo di input e inizio a digitare, tutto inizia a funzionare di nuovo.

Ho un bel po 'di JS in esecuzione, ma nessun errore in esecuzione. Sospettavo che TinyMCE avesse qualcosa a che fare con esso, ma succede anche quando non ci sono editor sulla pagina, quindi non sembra nemmeno esserlo. Se non hai una risposta, mi piacerebbe un'idea di cosa potrebbe accadere qui che potrei esaminare di più, dal momento che sono un po 'perplesso.

+0

È che l'input/textarea non ha lo stato attivo? –

+3

Si prega di fornire un esempio minimo che mostra questo comportamento; dovresti provare http://jsfiddle.net – canon

risposta

6

Alla fine ho risolto questo. È stato un problema strano e sgradevole con TinyMCE, in cui TinyMCE veniva distrutto mentre il cursore si trovava all'interno della finestra principale. La correzione era concentrarsi esplicitamente prima che venisse distrutto.

+0

Puoi pubblicare dettagli su come hai rimosso lo stato attivo, in particolare? – ndtreviv

+0

Non sono stato in grado di trovare, ma era lungo le righe di '$ ('html'). Focus()', se ricordo bene. Potresti anche concentrarti su un altro input. Finché non è nell'iframe di TinyMCE (che viene immortalato), dovrebbe andare bene. –

+0

Grazie @DanG, hai appena salvato la mia giornata. – jiantongc

0

Ho avuto un problema simile una volta con I.E. dove stavo usando .split per assicurarmi che la casella di input non fosse vuota quando si è messa a fuoco. Tuttavia, I.E. non supportava .split e mandava in crash il mio js. Ho dovuto scrivere il mio e ha finito per funzionare. Non sono sicuro che ciò si applichi in alcun modo a quello che stai facendo, ma ho pensato di buttarlo lì fuori.

-1

Poiché nella pagina è presente molto javascript, un motivo probabile potrebbe essere un conflitto di denominazione o anche più probabile un arresto anomalo di js. Attraversa il tuo codice per la 200esima volta.