2013-08-12 4 views
8

У меня есть объект iframe, указывающий на определенную страницу. Например,Обнаружение изменения src/location в объекте iframe

<iframe src="http://en.wikipedia.org/wiki/Special:Random"></iframe> 

Я хочу, чтобы иметь сигнал тревоги, когда место изменения Iframe, так как пользователь нажал на ссылку внутри него.

Выполнение onLoad="alert(this.ContentWindow.location.href);" ничего не дает.

Выполнение onLoad="alert(this.src);" дает исходный файл src (../wiki/Special:Random) независимо от того, что пользователь нажал.

Пользователь будет находиться в пределах одного домена, поэтому политика Same Origin не будет нарушена.

+0

Возможно, опечатка, но тэг 'iframe' не сформирован должным образом. –

+1

В iframe src говорится: «http: //en.wikipedia.org/wiki/Special: Random», но вы говорите, что пользователь останется в том же домене. Вы уверены, что это не проблема SOP? –

+0

К сожалению, извините. carriwitchet

ответ

3

Используйте правильный корпус в «ContentWindow», он должен быть «contentWindow».

<iframe src="your initial URL" onload="alert(this.contentWindow.location.href)" /> 

работает.

+4

, вы не можете получить доступ к 'contentWindow.location' веб-сайта, который не находится в пределах тот же домен или протокол родительского окна. специально на Google Chrome. –

+0

@HashemQolami quoting OP: * Пользователь останется в том же домене, поэтому политика Same Origin не будет нарушена. * –

+0

Поскольку атрибут 'src' указывает на' http: // en.wikipedia.org', 'iframe 'ДОЛЖЕН быть в en.wikipedia.org, чтобы работать. BTW, Если 'пользователь останется в пределах одного домена', это должно сработать. –

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