Поскольку "фиктивный" div находится внутри iFrame, вызов document.getElementById('dummy')
вернет ноль.document.getElementById
только ищет элементы в оригинальном документе веб-страницы.iFrames - это отдельный документ.Таким образом, ваш вызов dummyId.parentNode
пытается получить доступ к parentNode со значением NULL (поскольку в исходном документе нет фиктивного элемента), что приводит к вашей ошибке.
Вам необходимо получить элемент "фиктивный" изiFrameDoc.Попробуйте это:
var dummyID = iframeDoc.getElementById("dummy");
dummyID.parentNode.replaceChild(document.getElementById('wrapper'), dummyID);
Обратите внимание, что вам также нужно изменить вызов replaceChild, так как аргументы (newElem, oldElem), вы, похоже, поменяли их местами.