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

发布于 2024-11-02 02:37:46 字数 431 浏览 4 评论 0原文

我有一个带有 iframe 的页面。在 iframe 中有一个提交按钮。当我单击提交按钮时,我希望更新父窗口。 这就是我到目前为止所做的,并且它有效(javascript 位于父窗口中):

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

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

});
});

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

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

I have a page with an iframe. In the iframe there’s a submit button. When I click the submit button I want the parent window to be updated.
This is what I have done so far, and it works (the javascript is located in the parent window):

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

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

});
});

The code works. But I find the reload of the iframe unnecessary. Is there a better way to detect when "submit" is completed?

(I can’t reload the page only by “onclick” or relay on any delay. I must be sure that the submitting of the form is finished)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

意中人 2024-11-09 02:37:46

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

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

注意 live 将在运行时将事件绑定到 publish 链接。

Assuming publish is unique you can simply do so:

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

Notice the live will bind the even to publish link at runtime.

少跟Wǒ拽 2024-11-09 02:37:46

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

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

或者,如果您开放插件,则可以使用 jQuery 表单插件

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

You could have the form submission return a block of js:

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

or, if you're open to plug-in, you could use the ajaxSubmit() method of the jQuery Form Plugin.

$myFrame.contents().find('form').ajaxForm({
  success: function() {
     // update parent
  }
});
我很OK 2024-11-09 02:37:46
$("#publish").click(function() {
    $('#inputs').ajaxSubmit({
        success:function(){
            //alert("Reload called");
            parent.location.reload();
        }
    });
 });

这有效。

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

This worked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文