Tengo problemas para lograr que attachEvent funcione. En todos los navegadores compatibles con el controlador addEventListener, el código siguiente funciona como un hechizo, pero en IE es un desastre completo. Tienen su propia variación (incompleta) llamada attachEvent.attachEvent versus addEventListener
Ahora aquí está el trato. ¿Cómo hago para que el evento attachEvent funcione de la misma manera que lo hace addEventListener?
Aquí está el código:
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);
}
}
Este llama a la función KeyBoardHandler que tiene este aspecto:
function KeyBoardHandler(Event, keyEventArgs) {
if (Event.keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}
/* more code */
}
no quiero utilizar cualquier marcos porque a) Estoy tratando de aprender y entender algo, y B) cualquier marco es solo una sobrecarga de código que voy a usar.
¡Cualquier ayuda es muy apreciada!
Tiene un buen punto para tratar de aprender sin utilizar un marco para comprender el funcionamiento interno del JavaScript basado en navegador. Sin embargo, te sugiero que pases a usar frameworks para código de producción una vez que hayas dominado JavaScript de bajo nivel, no tiene mucho sentido reinventar la rueda (los frameworks son ampliamente probados con una variedad de navegadores, y una vez usted desarrolla su propio marco de trabajo, se pondrá grande de todos modos para solucionar las peculiaridades del navegador y evitar el código repetitivo en otro lugar de su código). Además, el navegador puede almacenar en caché JavaScript externo una vez para múltiples solicitudes. – Archimedix
¿Qué estás tratando de hacer y qué está sucediendo ahora que está mal? – lincolnk
Los marcos como jquery se parecen más a un estándar hoy en día, intentan hacer que la compatibilidad con navegadores cruzados sea real, use javascript cuando realmente desee hacer algo específico y desee un control total. –