2013-11-06 2 views
2

У меня есть IFRAME, который пытается вызвать функцию в родительском окне, например, так:Есть ли способ увидеть, доступен ли window.top?

window.top.updateIFrame(height); 

Очевидно, что это будет работать только если IFrame и расположение родительского окна находятся на том же домене. Поэтому я хочу проверить, чтобы window.top был доступен, прежде чем пытаться вызвать функцию. Но я не могу этого сделать.

Я попытался установить window.top объекту, и объект существует, но я не могу понять, есть ли доступ к нему или нет.

+0

Будет ли 'попробовать/catch' работать здесь? –

+0

вы не можете просто сделать if (window.top && window.top.updateIFrame) {}? вы можете aways jsut обернуть его в попытке Catch –

+0

@RocketHazmat Вот что я делаю сейчас. Но я хотел бы сначала проверить – Smeegs

ответ

-1

Попробуйте использовать проверку

if (typeof(window.top) == 'object' && typeof(window.top.updateIFrame) == 'function') 
    ... 
+0

'typeof (window.top) == 'object'' всегда возвращает true для iframe независимо от домена. Объект существует, но доступ к свойствам/методам объекта запрещен. – Smeegs

+0

Нет, это не поможет. 'window.top.updateIFrame' - это функция, ее просто нельзя вызвать из-за безопасности. Он выдает исключение при вызове. –

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