【问题标题】:Javascript or Jquery: Write html to iframe not fire $(document).ready in IEJavascript 或 Jquery:将 html 写入 iframe 不会在 IE 中触发 $(document).ready
【发布时间】:2015-02-06 06:33:28
【问题描述】:

这是我的情况。

主页:

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

文档可能需要打开/关闭

【问题讨论】:

    标签: javascript jquery iframe onload ready


    【解决方案1】:

    可能使用:-

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

    Here is the post which will help you.

    【讨论】:

      【解决方案2】:

      我找到了答案:javascript-how-to-load-dynamic-contents-html-string-json-to-iframe

      我认为问题是

      iframedoc.open();
      iframedoc.writeln(patch_html);
      iframedoc.close();
      文档可能需要打开/关闭

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        相关资源
        最近更新 更多