IE7 не полностью поддерживает javascript метод insertBefore?
У меня есть следующий код, который прекрасно работает в Chrome, IE8 и FF. Тем не менее, я получаю сообщение об ошибке при тестировании с IE7. Кто-нибудь знает, что здесь происходит?
function do_replace(s, p1,p2,p3,child_node,syn_text) {
reg = new RegExp('[h\|H][1-7]');
if(p1.length>0){ //this might not be necessary
//create textnode
var text_node = document.createTextNode(p1);
child_node.parentNode.insertBefore(text_node,child_node); //errors out here in IE7
}
Ошибки кода в последней строке - IE7 выдает "htmlfile: Неверный аргумент". ошибка, когда я смотрю на код через отладчик. child_node, parentNode и text_node выглядят идентичными Firefox и Chrome при запуске этого скрипта.
Есть идеи? Или IE7 просто не поддерживает этот метод, как и другие браузеры?
Спасибо
2 ответа
Вместо того, чтобы оставить эту проблему нерешенной, я выяснил, что не так с моим кодом:
Я использовал обширный набор фреймов (черт!), И когда я сделал text_node = document.createTextNode()
звоните, я не делал этого в кадре, в котором находилось мое приложение.
Я исправил это, явно вызвав фрейм для создания объекта в:
var text_node = MainFrame.child_frame.WhySoManyFrames.document.createTextNode(p1);
После этого insertBefore
метод работает отлично!
Надеюсь, это поможет любому, кто смотрит на этот вопрос - я знаю, что мне потребовалось много времени и много разочарований, чтобы понять!
Функция JavaScript "InsertBefore" поддерживается IE7. Помните, что вы должны использовать эту функцию только тогда, когда страница полностью загружена!