2016-11-20 6 views
0

Я фреймы страницы:Изменения родительского фрейм URL, если IFrame изменения URL

<iframe src="http://externalwebsite.com/test.html" scrolling="no" height="400px" width="400px" allowfullscreen></iframe> 

И я хочу, чтобы изменить родительский URL для http://mywebsite.com/succes.html, если изменения IFrame URL в http://externalwebsite.com/succes.html

Я пытались фигуры это с помощью JavaScript, но мне это не удалось. Кто-нибудь может мне помочь?

+1

Из-за проблем с безопасностью, вероятно, нет способа сделать это без проксирования внешнего сайта – mplungjan

+0

Вы можете обнаружить, когда он загружает новую страницу, но не то, что эта страница, когда не тот же домен http://plnkr.co/edit/ ebnk244eJrwREIJuI3JC? p = preview Ифраметры очень ограничены из-за * «той же политики происхождения» * – charlietfl

ответ

0

<iframe id="frameId" src="http://externalwebsite.com/test.html" scrolling="no" height="400px" width="400px" allowfullscreen></iframe>

Bind к событию frame.onload в родительском окне.

var frame = document.getElementById('frameId'); 
frame.onload = function(e){ 
    if(frame.src === 'http://externalwebsite.com/succes.html'){ 
     window.location.href = 'http://externalwebsite.com/succes.html'; 
    } 
}; 

Попробуйте frame.src='someUrl'; для испытания.

+0

Вы проверили это? Демо-ссылка выше не даст URL-адрес обновления, а также jQuery не имеет 'onload', поэтому он не будет запускаться, как написано. Было бы либо 'frame [0] .onload', либо' frame.on ('load' ... ' – charlietfl

+0

:(для меня это не сработало, но спасибо за попытку помочь – jollesnaas

+0

Вы правы charlietfl. код, который вы указываете, или var frame = document.getElementById ('frameId'); – napoleonss

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