Это моя ситуация.
Главная страница:
<script type="text/javascript">
function load_frm()
{
if($.browser.msie == true) {
var frame = document.getElementById('frm');
frame.contentWindow.document.write(patch_html);
}
else {
$("#frm").attr('src', "data:text/html;charset=utf-8," + escape(patch_html));
}
}
</script>
<html>
<body>
<input type="button" onclick="load_frm()">
<iframe id="frm"></iframe>
</body>
</html>
patch_html содержит $(document).ready, который необходимо запустить после полной загрузки iframe, чтобы изменить стиль некоторого элемента внутри iframe.
jquery включен в заголовок patch_html. Этот код отлично работал в Firefox, но не в IE.
Причина, по которой мне пришлось использовать write (для IE) и attr('src', "data:text/html..."), заключается в том, что в html нет скрипта для изменения стиля некоторых элементов он впрыскивается только при определенных условиях
Я пробовал iframe onLoad, но он не работает. он сработал до полной загрузки ресурса.
Я нашел ответ: javascript -how-to-load-dynamic-contents-html-string-json-to-iframe
я думаю проблема в том
iframedoc.open();
iframedoc.writeln(patch_html);
iframedoc.close();
вероятно, документ необходимо открыть/закрыть.