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

Я хочу обнаружить, когда пользователь нажимает на ссылку в iframe и изменяет источник iframe, потому что я хочу изменить размер его. Также я использую jQuery. Что лучший способ состоит в том, чтобы обнаружить это?

На самом деле мне нужно что-то вроде этого (этот пример находится в jQuery, он не работает, я вообразил это),

$('#iframe').live('load', function(){ alert('src is changed')});
6
задан Gert Grenander 2 July 2010 в 03:05
поделиться

2 ответа

Вы можете использовать событие onLoad , как показано в следующем примере:

<iframe src="/test.html" onLoad="alert(this.contentWindow.location);"></iframe>

Предупреждение будет всплывать при изменении местоположения в iframe. Он работает во всех современных браузерах, но может не работать в некоторых очень старых браузерах, таких как IE5 и ранняя версия Opera. ( Источник )

Обратите внимание, что вы не сможете получить доступ к contentWindow.location , если iframe находится в другом домене или субдомене, а onLoad Событие по-прежнему будет активировано.

13
ответ дан 8 December 2019 в 14:40
поделиться

Это не совсем чистое решение, но оно будет работать: вы можете создать таймер, который периодически проверяет, изменился ли источник 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
3
ответ дан 8 December 2019 в 14:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: