【问题标题】:Reload page after submit in iframe (javascript/jquery)在 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”重新加载页面或延迟任何延迟。我必须确保表单提交完成)

【问题讨论】:

  • 要更新父窗口?或要重新加载的父窗口?更新是什么?
  • 你到底是怎么解决这个问题的?

标签: javascript jquery iframe submit reload


【解决方案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表单提交。
    猜你喜欢
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2013-08-18
    • 2011-04-18
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多