在iframe中提交后重新加载页面(javascript / jquery)

时间:2011-04-17 18:08:17

标签: javascript jquery iframe submit reload

我有一个包含iframe的页面。在iframe中有一个提交按钮。当我单击提交按钮时,我希望更新父窗口。 这是我到目前为止所做的,它的工作原理(javascript位于父窗口中):

var myFrame = $('iframe');
myFrame.load(function() {
myFrame.contents().find('#publish').click(function() {

  myFrame.load(function() {
    location.reload();
  });

});
});

代码有效。但我发现iframe的重新加载是不必要的。 有没有更好的方法来检测“提交”何时完成?

(我无法通过“onclick”重新加载页面或在任何延迟时继续。我必须确保提交表单已完成)

3 个答案:

答案 0 :(得分:0)

假设publish是唯一的,您可以这样做:

$(document).ready(function(){
  $('#publish').live('click', function(e){
     e.preventDefault();
     //Do whatever you want here
   });
});

请注意live会在运行时将偶数绑定到publish链接。

答案 1 :(得分:0)

您可以让表单提交返回一个js块:

<html>
<script>
 window.parent.document.jQueryFunction();
</script>
</html>

或者,如果您对插件开放,则可以使用the jQuery Form Plugin的ajaxSubmit()方法。

$myFrame.contents().find('form').ajaxForm({
  success: function() {
     // update parent
  }
});

答案 2 :(得分:0)

$("#publish").click(function() {
    $('#inputs').ajaxSubmit({
        success:function(){
            //alert("Reload called");
            parent.location.reload();
        }
    });
 });

这很有用。