Как я могу дождаться, пока iframe перезагрузит свое содержимое?

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть HTML-страница, которая использует javascript / jquery для перезагрузки содержимого iframe:

     $('#my-frame').attr("src","someotherpageinthesamedomain");
  

Чего бы я хотел, так это иметь возможность манипулировать HTML-кодом iframe после его перезагрузки. Я попробовал это:

     $("#my-frame").load(dostuff());
  

Но это не дождется перезагрузки — я предполагаю, потому что iframe уже загружен со своим исходным содержимым.

Комментарии:

1. вы передаете результат dostuff() . Вам нужно передать ссылку на функцию dostuff (без круглых скобок)

Ответ №1:

Вы должны передать функцию, а не вызывать ее:

 $("#my-frame").load(dostuff);
//           no () here --^
  

Помещение круглой скобки после имени функции немедленно вызывает функцию и, в вашем случае, передаст возвращаемое значение в .load() (что нормально, если возвращаемое значение является функцией, но я предполагаю, что это не так).

И да, возможно, вам придется установить обработчик перед изменением src атрибута.

Комментарии:

1. Хах. Спасибо, что поймали мою ошибку javascript n00b. =)