jQuery iframe 准备就绪
Posted
技术标签:
【中文标题】jQuery iframe 准备就绪【英文标题】:Jquery iframe ready 【发布时间】:2012-02-15 20:04:24 【问题描述】:我的页面中有一个 iframe,我正在将我的表单提交到该 iframe,所以在 iframe 完成加载后,我需要在每次 iframe 完成加载内容时触发一个函数。
我尝试过使用ready
和load
,但没有任何效果,谁能给我一些例子?
编辑另外,当我提交时,我的浏览器显示该页面正在加载,我该如何删除它?
【问题讨论】:
将你的 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(替代方式)的情况下知道页面何时准备就绪? [复制]