Проверьте статус iframe после загрузки файла AJAX с помощью Rails - PullRequest
0 голосов
/ 01 августа 2011

Существует аналогичная запись Получение кода состояния HTTP из загруженного iframe с помощью Javascript , но решение требует, чтобы на стороне сервера возвращался JavaScript, вызывающий функцию внутри iframe.Вместо этого я просто хотел бы проверить код состояния HTTP iframe, не вызывая функцию внутри самого iframe, поскольку мое приложение возвращает полный сайт через HTML или один объект в виде JSON.По сути, я пытался реализовать метод обратного вызова, который возвращает успех | сбой в зависимости от кода состояния HTTP.

В настоящее время у меня есть uploadFrame.onLoad = function() { ... so far pretty empty ... }, и я не уверен, что нужно искать при поиске кодов состояния HTTP.До сих пор я в основном полагался на jQuery $.ajax(), чтобы справиться с успехом | неудачей, но хотел бы лучше понять механизм, лежащий в основе вызовов XHR и использования iframe.Заранее спасибо.


ОБНОВЛЕНИЕ

Решение, которое я придумал, используя jQuery

form.submit(function() {
  uploadFrame.load(function() {
    //using eval because the return data is JSON
    eval( '(' + uploadFrame[0].contentDocument.body.children[0].innerHTML + ')' );
    //code goes here
  });
});

1 Ответ

1 голос
/ 01 августа 2011

Я думаю, что лучшее решение - вставить тег <script> в ваш iframe <head> и вставить туда свой "обнаруживающий" код JavaScript.

примерно так:

$('#iframeHolderDivId').html($.get('myPage.php'));
$('#iframeHolderDivId iframe head').delay(1000).append($('<script/>').text('your js function to detect load status'));

Может бытьэто не лучшее решение, но я думаю, что оно работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...