У меня была похожая проблема с iFrame в диалоговом окне jQueryUI. jQuery перемещает div (содержащий мой iFrame) из DOM, и так как я все еще хотел postbacks (duh), мне пришлось переместить его обратно Прочитав этот и несколько других постов, я нашел решение.
Простая идея, которую я заметил, заключается в том, что iFrame перезагружается при его перемещении. Итак, я добавил iFrame в контейнер диалога (div) после перемещения div обратно в DOM. Это работает, потому что jQuery не заботится о том, что находится в контейнере. Вот пример кода:
Функции открытия / закрытия диалога:
открыто:
function () {
$(this).parent().appendTo("form").css("z-index", "9000"); //Move the div first
$(this).append('<iframe id="iFrame" allowtransparency="true" frameborder="0" width="100%" height="100%" src="somePage.aspx"></iframe>');}, //then add the iframe
}
закрыть:
function() {
$(this).empty(); //clear the iframe out because it is added on open,
//if you don't clear it out, you will get multiple posts
$(this).parent().appendTo("divHidden"); //move the dialog div back (good house-keeping)
}
HTML:
<div id="divHidden" style="display: none">
<div id="dialog" style="display: none">
</div>
</div>