У меня возникают проблемы с подключением attachEvent. Во всех браузерах, поддерживающих обработчик addEventListener, приведенный ниже код работает как шарм, но в IE это полная катастрофа. У них есть своя (неполная) вариация, называемая attachEvent.attachEvent versus addEventListener
Теперь вот сделка. Как заставить attachEvent работать так же, как это делает addEventListener?
Вот код:
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);
}
}
Это вызывает функцию KeyBoardHandler, которая выглядит следующим образом:
function KeyBoardHandler(Event, keyEventArgs) {
if (Event.keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}
/* more code */
}
Я не хочу использовать какие-либо рамки, потому что а) я пытаюсь научиться и понять что-то, и B) любая фреймворк - это просто перегрузка кода, который я буду использовать.
Любая помощь очень ценится!
У вас есть отличная возможность учиться, не используя рамки для понимания внутренней работы браузера на основе JavaScript. Однако я бы предположил, что вы переходите к использованию фреймворков для производственного кода, как только вы освоите низкоуровневый JavaScript, не имеет большого смысла изобретать колесо (рамки широко протестированы с помощью множества браузеров, и один раз вы катите свой собственный фреймворк, он будет в любом случае зависеть от особенностей браузера и избежать кода шаблона в другом месте вашего кода). Кроме того, внешний JavaScript может быть кэширован браузером один раз для нескольких запросов. – Archimedix
Что вы пытаетесь сделать и что происходит сейчас, это неправильно? – lincolnk
Рамки, подобные jquery, сегодня больше похожи на стандарт, они пытаются сделать кросс-браузерную совместимость реальной, используйте javascript, когда вы действительно хотите сделать что-то конкретное и хотите получить полный контроль. –