Что будет менять источник iframe?Если у вас есть доступ к этому коду, тогда вы можете делать все, что есть в вашей функции onload
.
Если ссылка имеет атрибут target
, установленный на iframe, и именно так изменяется источник, то выможет хай-джек ссылка щелкает:
$('a[target="frameB"]').bind('click', function () {
//run your onload code here, it will run as the iframe is downloading the new content
});
Кроме того, просто примечание, вы можете привязать обработчик событий для события load
в jQuery следующим образом:
$('#frameB').bind('load', function () {
//run onload code here
});
UPDATE
SITE -> frameB -> frameA
$("#frameB").contents().find("#frameA").bind('load', function () {
//load code here
});
Выбирает элемент #frameB
(который находится в текущем DOM верхнего уровня), получает его содержимое, находит #frameA
, а затем привязывает обработчик события для события load
.
Обратите внимание, что этот код должен выполняться после загрузки #frameB
с элементом #frameA
, уже присутствующим в его DOM.Что-то вроде этого может быть хорошей идеей:
$('#frameB').bind('load', function () {
$(this).contents().find('#frameA').bind('load', function () {
//run load code here
});
});
ОБНОВЛЕНИЕ
Для хай-джек ссылок в элементе #frameB
:
$('#frameB').contents().find('a[target="frameA"]').bind('click', function () {
/*run your code here*/
});
Это найдет любойссылка в элементе #frameB
с атрибутом target
, установленным на frameA
, и добавлением обработчика событий click
.
И снова, это будет работать только в том случае, если загружен элемент iframe #frameB
(или хотя бы дошли до события document.ready
), чтобы вы могли выбрать его элементы.