Я пытаюсь добавить событие onkeypress в динамически созданный элемент p
. Это отлично работает в Firefox, Opera и Chrome, но не в IE.Javascript: динамически добавлять событие onkeypress, то есть
Мой код:
function newParagraphAfter(elem)
{
blockElemId++;
newPara = document.createElement("p");
newPara.id = 'block_' + blockElemId;
newPara.innerHTML = "Edit Here!";
elem.parentNode.insertBefore(newPara, elem.nextSibling);
document.getElementById('block_' + blockElemId).contentEditable = 'true';
document.getElementById('block_' + blockElemId).focus();
document.getElementById('block_' + blockElemId).onkeypress = function(event){return editKeypress(this, event)};
document.getElementById('block_' + blockElemId).onkeydown = function(event){return editKeydown(this, event)};
document.getElementById('block_' + blockElemId).onblur = function(){deleteIfBlank(this);};
}
Добавление идентификатора работает во всех браузерах, и добавление innerHTML работает. Тест, изменения цвета фона (document.getElementById('block_' + blockElemId).style.backgroundColor = "#666";
также работал во всех браузерах.
Однако линии добавляющих OnKeyPress, OnKeyDown и ONBLUR событие, а также .focus()
линии не работает в IE.
Спасибо заранее за любую помощь,
Нико
UPDATE:
Я предпочел бы не иметь, чтобы использовать JQuery если он можно избежать, просто потому, что мне нравится модифицировать весь код в моих проектах, а не использовать сторонние библиотеки. Я также должен был бы изучить совершенно новый способ кодирования, который я бы предпочел не делать, если его можно избежать.
contenteditable = 'true'
линия работает отлично.
(не ответ на ваш вопрос, но * только * в случае, если вы не знаете об этом: это легко сделать с помощью таких вещей, как jQuery.) – Arjan
Ошибка сценария (что остановило бы дальнейшую обработку), когда выполняется 'contentEditable = 'true''? Может быть, добавить рабочий пример в JS Bin? - http://jsbin.com – Arjan
Я бы предпочел не использовать jquery по причинам, указанным выше. Я добавил рабочий пример в www.brokenmyriad.com/editor.php. Я попробовал JSbin, но код не работал в любом браузере. –