Я хочу обнаружить, когда пользователь нажимает на ссылку в iframe
и изменяет источник iframe
, потому что я хочу изменить размер его. Также я использую jQuery. Что лучший способ состоит в том, чтобы обнаружить это?
На самом деле мне нужно что-то вроде этого (этот пример находится в jQuery, он не работает, я вообразил это),
$('#iframe').live('load', function(){ alert('src is changed')});
Вы можете использовать событие onLoad
, как показано в следующем примере:
<iframe src="/test.html" onLoad="alert(this.contentWindow.location);"></iframe>
Предупреждение будет всплывать при изменении местоположения в iframe. Он работает во всех современных браузерах, но может не работать в некоторых очень старых браузерах, таких как IE5 и ранняя версия Opera. ( Источник )
Обратите внимание, что вы не сможете получить доступ к contentWindow.location
, если iframe находится в другом домене или субдомене, а onLoad Событие
по-прежнему будет активировано.
Это не совсем чистое решение, но оно будет работать: вы можете создать таймер, который периодически проверяет, изменился ли источник iframe.
var prevSrc = '';
function check() {
var curSrc = $('#iframe').attr('src');
if (curSrc != prevSrc) {
// source has changed; do something
prevSrc = curSrc;
}
}
window.setInterval(check, 1000); // 1 sec - this can be anything you want