Я пытаюсь добавить событие onkeypress к динамически созданному элементу p
. Это отлично работает в Firefox, Opera и Chrome, но не в IE.
Мой код:
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";
также работал во всех браузерах.
Однако в IE не работают строки, добавляющие события onkeypress, onkeydown и onblur, а также строка .focus()
.
Заранее спасибо за любую помощь,
Nico
UPDATE:
Я бы предпочел не использовать jquery, если этого можно избежать, просто потому, что мне нравится иметь возможность изменять весь код в моих проектах, а не использовать какие-либо сторонние библиотеки. Мне также пришлось бы освоить совершенно новый способ кодирования, который я бы предпочел не делать, если его можно было бы избежать.
Линия contenteditable = 'true'
работает отлично.