在 iframe 中提交后重新加载页面(javascript/jquery)
Posted
技术标签:
【中文标题】在 iframe 中提交后重新加载页面(javascript/jquery)【英文标题】:Reload page after submit in iframe (javascript/jquery) 【发布时间】:2011-08-07 09:54:06 【问题描述】:我有一个带有 iframe 的页面。在 iframe 中有一个提交按钮。当我单击提交按钮时,我希望更新父窗口。 这是我到目前为止所做的,并且可以正常工作(javascript位于父窗口中):
var myFrame = $('iframe');
myFrame.load(function()
myFrame.contents().find('#publish').click(function()
myFrame.load(function()
location.reload();
);
);
);
代码有效。但我发现没有必要重新加载 iframe。 有没有更好的方法来检测“提交”何时完成?
(我不能仅通过“onclick”重新加载页面或延迟任何延迟。我必须确保表单提交完成)
【问题讨论】:
要更新父窗口?或要重新加载的父窗口?更新是什么? 你到底是怎么解决这个问题的? 【参考方案1】:假设 publish
是唯一的,您可以这样做:
$(document).ready(function()
$('#publish').live('click', function(e)
e.preventDefault();
//Do whatever you want here
);
);
注意live
将在运行时将偶数绑定到publish
链接。
【讨论】:
嗨 Naveed,你错过了“);”。但是我看不到这个功能将如何帮助我提交表单并重新加载页面。我想要一个函数来检测何时发送提交。【参考方案2】:你可以让表单提交返回一个 js 块:
<html>
<script>
window.parent.document.jQueryFunction();
</script>
</html>
或者,如果您对插件开放,您可以使用the jQuery Form Plugin 的 ajaxSubmit() 方法。
$myFrame.contents().find('form').ajaxForm(
success: function()
// update parent
);
【讨论】:
【参考方案3】:$("#publish").click(function()
$('#inputs').ajaxSubmit(
success:function()
//alert("Reload called");
parent.location.reload();
);
);
这行得通。
【讨论】:
欢迎来到 SO。问题中没有具体提到 Ajax。也可以是标准的html表单提交。以上是关于在 iframe 中提交后重新加载页面(javascript/jquery)的主要内容,如果未能解决你的问题,请参考以下文章