Ho problemi a far funzionare attachEvent. In tutti i browser che supportano il gestore addEventListener il codice seguente funziona come un incantesimo, ma in IE è un disastro completo. Hanno una loro variazione (incompleta) chiamata attachEvent.attachEvent rispetto addEventListener
Ora ecco l'affare. Come faccio a far funzionare attachEvent allo stesso modo di addEventListener?
Ecco il codice:
function aFunction(idname)
{
document.writeln('<iframe id="'+idname+'"></iframe>');
var Editor = document.getElementById(idname).contentWindow.document;
/* Some other code */
if (Editor.attachEvent)
{
document.writeln('<textarea id="'+this.idname+'" name="' + this.idname + '" style="display:none">'+this.html+'</textarea>');
Editor.attachEvent("onkeyup", KeyBoardHandler);
}
else
{
document.writeln('<textarea id="hdn'+this.idname+'" name="' + this.idname + '" style="display:block">'+this.html+'</textarea>');
Editor.addEventListener("keyup", KeyBoardHandler, true);
}
}
Questa chiama la funzione KeyBoardHandler che assomiglia a questo:
function KeyBoardHandler(Event, keyEventArgs) {
if (Event.keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}
/* more code */
}
Non voglio usare qualsiasi framework perché a) sto cercando di imparare e capire qualcosa, e B) qualsiasi struttura è solo un sovraccarico di codice che userò.
Qualsiasi aiuto è molto apprezzato!
Hai un buon punto nel provare a imparare senza usare un framework per capire il funzionamento interno del JavaScript basato su browser. Tuttavia, ti suggerisco di passare all'utilizzo di framework per il codice di produzione una volta che hai padroneggiato JavaScript di basso livello, non ha molto senso reinventare la ruota (i framework sono ampiamente testati con una varietà di browser e una volta fai girare il tuo framework, diventerà sempre più grande per aggirare le stranezze del browser ed evitare il codice boilerplate in altre parti del tuo codice). Inoltre, JavaScript esterno può essere memorizzato nella cache dal browser una volta per più richieste. – Archimedix
cosa stai cercando di fare e cosa sta succedendo ora che è sbagliato? – lincolnk
I framework come jquery sono più simili a uno standard oggi, cercano di rendere la compatibilità cross-browser una cosa reale, usano javascript quando in realtà vuoi fare qualcosa di specifico e vuoi un controllo completo. –