2013-10-24 6 views
4

Моя проблема заключается в том, что я создаю приложение, которое будет добавлено на разные страницы в iframe. Но иногда это будет в моем собственном домене, а иногда и на некоторых elses. И когда он размещается в моем собственном домене, я хочу иметь возможность вызывать функции за пределами фрейма.Проверьте, является ли родитель окна одним и тем же доменом

Можно ли проверить, находится ли родительское окно в одном домене (с javascript/jQuery)? На данный момент я получаю эту уродливую ошибку при попытке получить доступ что-нибудь за пределами моего кадра, когда не находится на моем сайте: «Ошибка: Доступ запрещен доступ к свойству„документ“»

Хотите сделать что-то вроде этого:

if(window.parent is accessible) { 
    // Do special stuff 
} else { 
    // Do nothing 
} 
+0

сделать некоторый поиск о crossdomain политики в JS ... – JoDev

+1

Не может найти что-нибудь отношение, поэтому я отправил здесь ... – KungWaz

+1

Первого результат в моем первом search: [stackoverflow] (http://stackoverflow.com/questions/9788328/access-parent-window-from-iframe-cross-domain), и результат будет основан на [этом сайте] (http: // www. esqsoft.com/javascript_examples/iframe_talks_to_parent/) – JoDev

ответ

12

Вы могли бы использовать:

try{ 
    parent.document; 
    // accessible 
}catch(e){ 
    // not accessible 
} 
+0

Это, казалось, сработало, было «тем же», что и JoDev в ссылке. – KungWaz

0

Я попытался проверить родительский документ, но по некоторым причинам в новых IOS устройств (хром или сафари) он не выбросил исключение, а просто продолжал к следующему шагу ,

Так что я взял это еще один шаг:

try{ 
    var doc = parent.document; 
    if(!doc) 
     throw new Error('Unaccessible'); 
    // accessible 
}catch(e){ 
    // not accessible 
} 
Смежные вопросы