【问题标题】:How to execute a script that containts a window.onload after it is injected into an iframe that lives on the same page如何在将包含 window.onload 的脚本注入到同一页面上的 iframe 后执行该脚本
【发布时间】:2013-01-26 23:48:33
【问题描述】:

我想知道如何获取插入到 iframe 中以执行包含 window.onload 函数的脚本。因为 iframe 已经加载,所以当我插入脚本时它不会执行。我不想操纵以任何方式插入的脚本。有没有办法在不丢失新插入的脚本的情况下重新创建 iframe 的 onload 状态,或者,有没有办法将脚本保存到 iframe 的 DOM 中以便在刷新时加载?

您可以在http://www.fundifi.com/victor/pixel_sandbox/sandbox.html查看代码

【问题讨论】:

    标签: javascript dom iframe onload


    【解决方案1】:

    如果您没有任何其他脚本监听窗口的加载事件,您可以尝试重新触发加载事件:

    $(window).trigger('load');
    

    如果您无法从 iframe 中运行该代码,您可以尝试从父级中查找 iframe 窗口(前提是不存在跨域问题):

    var iframeWindow = $('iframe#my-frame').get(0).contentWindow;
    $(iframeWindow).trigger('load');
    

    【讨论】:

    • 谢谢,我试过底层版本,它工作。我没有尝试最上面的那个,因为我不知道它怎么知道什么时候触发。您能解释一下 get(0) 的作用吗?
    • get(0) 从 jQuery 结果集中获取原生 DOM 元素。如果您愿意,整个声明可能只是 document.getElementById('my-frame').contentWindow;
    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 2015-08-21
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2011-09-27
    • 2017-07-19
    相关资源
    最近更新 更多