2010-09-14 2 views
2

Как я могу запустить функцию, когда изменяется src iframe? IFrame отображает сайт, который не находится на моем сервере ... Когда пользователь нажимает или нажимает кнопку внутри iframe, я хотел бы выполнить функцию, чтобы проверить, изменился ли src ...Как запустить функцию при изменении iframe src?

ответ

5

У вас нет доступа к кнопке внутри iframe, если она находится в другом домене, поэтому вы не можете использовать событие «click». Единственное решение заключается в использовании «нагрузка» события на IFRAME:

<iframe src=".." onLoad="alert('new page loaded');"></iframe> 

событие загрузки срабатывает сразу, когда страница в IFRAME была загружена, а затем еще раз, когда другая страница (после изменения СРКА). Затем вы можете сравнить первый src (сохранить его в переменной в начале) с текущим, а если они разные, это значит, что src был изменен.

+0

Спасибо, я все время попадал на «onclick» ... – David

0

I Я уверен, что вы не можете видеть, когда это произойдет.

+0

было бы правдоподобно (или даже этический) использовать событие setTimeout для проверки w heter iframe SRC изменился каждые 5-10 секунд? – David

1

Замените функцию onload на нашу. Не забудьте также называть их onload функция

function letswatch() { 
    var myIframe = document.getElementById("myIframe"); 
    var oldonload = myIframe.onload; 
    if (typeof myIframe.onload != 'function') { 
    myIframe.onload = func; 
    } else { 
    window.onload = function() { 
     oldonload(); 
     func(); 
    } 
    }  
} 

Наша функция:

function func() { 
    alert("changed"); 
    } 

Пожалуйста, вахта working example на:

Смежные вопросы