jQuery iframe 准备就绪

Posted

技术标签:

【中文标题】jQuery iframe 准备就绪【英文标题】:Jquery iframe ready 【发布时间】:2012-02-15 20:04:24 【问题描述】:

我的页面中有一个 iframe,我正在将我的表单提交到该 iframe,所以在 iframe 完成加载后,我需要在每次 iframe 完成加载内容时触发一个函数。

我尝试过使用readyload,但没有任何效果,谁能给我一些例子?

编辑另外,当我提交时,我的浏览器显示该页面正在加载,我该如何删除它?

【问题讨论】:

将你的 js/jquery 放在 iframe 中,而不是父级 $(document).ready and iframe content 的可能重复项 和***.com/questions/164085/… 和***.com/questions/205087/… 和***.com/questions/30005/…(见第二个答案)。如果不是,请说出与这些案例的不同之处。 【参考方案1】:

您需要指定要在新 iframe 内容中触发的函数

<html>
    <head>  
        <script src="jquery-1.7.1.min.js"></script>
        <script>
            $(document).ready(function()
            
                console.log('this is loaded');
            );
        </script>
    </head>
    <body>
        THE RESPONSE OF YOUR FORM ACTION
    </body>
    </html>

或者发布您的 iframe 代码,我们可以尝试修复它 只要我能看到,就无法隐藏浏览器在提交时加载新内容的事实。 您是否尝试过使用 div 代替 iframe?恕我直言,这将更容易,如果我没记错的话,加载将被隐藏。

【讨论】:

谢谢你的回答我用 onload="" 事件解决了它现在唯一剩下的问题是浏览器正在显示加载内容,不我不能使用 div 我通过上传文件iframe 所以我可以将我的数据发布到 div 吗? 很高兴您解决了部分目标。对于第二部分,请看这里***.com/questions/3623361/… 当然你可以使用ajax。只是谷歌的例子。输入Simple Ajax Example,你会得到一些东西【参考方案2】:

您有几个选择,具体取决于您的 javascript 所在的位置:

    您可以将 .ready() javascript 放在 iframe 的 源网页 上(如果包含 iframe 的父网页不需要知道发生了什么事件,这是一个不错的选择在 iframe 内):

    $(document).ready(function()
        console.log('My webpage loaded!');
    );
    

    或者,您可以将 .load() JS 放在 父网页 上,如下所示:

    var win = document.getElementById('myiframe').contentWindow || iframe;
    $(win).load(function()
        console.log('The iframe on my webpage loaded');
    );
    

【讨论】:

以上是关于jQuery iframe 准备就绪的主要内容,如果未能解决你的问题,请参考以下文章

jQuery库和jQuery文件准备就绪

jQuery文档内部或外部的功能准备就绪

隐藏外部提供的 iframe

如何在不使用 jQuery(替代方式)的情况下知道页面何时准备就绪? [复制]

Jquery DOM 准备就绪 - 不是每次都在 iphone 5 (ios7) 上的 Safari 中加载

jQuery 就绪功能在 WordPress 中不起作用