Обновить страницу после отправки в iframe (javascript / jquery) - PullRequest
6 голосов
/ 17 апреля 2011

У меня есть страница с iframe. В фрейме есть кнопка отправки. Когда я нажимаю кнопку отправки, я хочу обновить родительское окно. Это то, что я сделал до сих пор, и это работает (javascript находится в родительском окне):

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

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

});
});

Код работает. Но я считаю, что перезагрузка iframe не нужна. Есть ли лучший способ определить, когда «отправить» завершено?

(Я не могу перезагрузить страницу только «onclick» или ретранслировать при любой задержке. Я должен быть уверен, что отправка формы завершена)

Ответы [ 3 ]

0 голосов
/ 18 апреля 2011

Вы можете получить отправку формы, возвращающую блок js:

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

или, если вы открыты для плагина, вы можете использовать метод ajaxSubmit () jQueryПлагин формы .

$myFrame.contents().find('form').ajaxForm({
  success: function() {
     // update parent
  }
});
0 голосов
/ 12 сентября 2011
$("#publish").click(function() {
    $('#inputs').ajaxSubmit({
        success:function(){
            //alert("Reload called");
            parent.location.reload();
        }
    });
 });

Это сработало.

0 голосов
/ 17 апреля 2011

Предполагая, что publish уникален, вы можете просто сделать это:

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

Обратите внимание, что live свяжет четную ссылку с publish во время выполнения.

...