У меня есть только эта ссылка: http://www.mjmwired.net/kernel/Documentation/rtc.txt
я вполне уверен, RTC - то, что Вы ищете все же.
РЕДАКТИРОВАНИЕ
Другие ответы кажутся более портативными, чем мой.
Это старая, как черт, ошибка в IE (рад узнать, что она исправлена в версии 8). Я не знаю официальной причины, но я считаю, что это связано с тем, что IE не перерисовывает DOM до тех пор, пока контекст выполнения не будет завершен, тем временем пытаясь focus ()
элемент, пока он считает, что он все еще скрыт :
function calledAtSomePoint() { // begin execution
// ...
element.style.display = ''; // show container
input.focus(); // IE thinks element is hidden
// end of execution, IE repaints the DOM but it's too late
}
Решение - использовать setTimeout
:
setTimeout(function() {
document.getElementById('add-comment-login-overlay-username-input').focus()
}, 0)
У меня это случалось много раз, в том числе с jQuery. Это не вина какой-либо библиотеки. setTimeout
всегда помогал мне.
Можно предположить, что вызов insertAfter
сбивает с толку IE DOM. Можете ли вы протестировать код без вызова insertAfter
? Неужели он не работает точно так же? Если нет, есть ли другой способ добиться того же результата? Может быть, вместо перемещения узлов скопировать узлы и удалить оригиналы?