Javascript или Jquery: писать html в iframe, а не запускать $(document).ready в IE

Это моя ситуация.

Главная страница:

<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();

вероятно, документ необходимо открыть/закрыть.


person Lã Đại Đồng    schedule 06.02.2015    source источник


Ответы (2)


Вероятно, используйте: -

 $('iframe#frm').load(function() {/*do something here*/});

Вот пост, который вам поможет.

person amitthk    schedule 06.02.2015

Я нашел ответ: javascript-how-to-load-dynamic-contents-html-string-json-to-iframe

я думаю проблема в том

iframedoc.open();
iframedoc.writeln(patch_html);
iframedoc.close();
the document need to open/close probably.

person Lã Đại Đồng    schedule 09.02.2015