Обновление iframe после отправки ajax POST - PullRequest
2 голосов
/ 19 марта 2012

У меня есть сообщение, отправленное через AJAX, которое отправляет сообщение, а затем выполняет некоторое приятное на вид действие в функции succes.Мой вопрос заключается в следующем: как я могу перезагрузить страницу после завершения slipeUp ()?Для чего это стоит, содержимое окна находится внутри iframe с id = "thread", если это важно.Вот мой кодВсе работает хорошо, за исключением того, что я не могу перезагрузить страницу после slideUp ().Любая помощь приветствуется!

  $(function() {
  $('.error').hide();
  $("#button").click(function() {

    $('.error').hide();

      var subject = $("input#subject").val();

      if (subject == "")
        {
      $("label#subject_error").show();
      $("input#subject").focus();
      return false;
        }

      var message = $("textarea#message").val();

      if (message == "")
        {
      $("label#message_error").show();
      $("textarea#message").focus();
      return false;
        }

        var thread_id = {THREAD_ID};
        var sender_id = {SENDER_ID};

        var dataString = 'sender_id='+ sender_id + '&thread_id=' + thread_id + '&message=' + message + '&submit=' + true;
        //alert (dataString);return false;
        $.ajax(
        {
          type: "POST",
          url: "{U_NEW}",
          data: dataString,
          success: function()
            {
            $('.dialog').html("<div id='succes'></div>");
            $('#succes').html("<h2>{L_MESSAGE_SENT}</h2>")
            .hide()
            .fadeIn(800, function()
                {
              $('#succes')
            });

            $('#succes').delay(1500).slideUp(500);
            }
        });
  });
});

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Вы имеете в виду

  $('#succes').delay(1500).slideUp(500, function(){ location.reload();});
0 голосов
/ 19 марта 2012

slideUp может принимать функцию обратного вызова в качестве второго параметра.

.slideUp( [duration] [, callback] )

Так что вы можете сделать что-то вроде этого:

$('#succes').delay(1500).slideUp(500, function () {
    //document.getElementById('thread').contentWindow.location.reload(); // reload iframe
    var iframe = window.parent.document.getElementById('thread');
    iframe.src = iframe.src;
});
...