Доступ к родительскому DOM из скрипта в iframe в IE Mobile
-
05-07-2019 - |
Вопрос
У меня есть окно в рамке (в настоящее время iframe, но, возможно, в рамке) - я не могу это контролировать. Р>
Я хотел бы определить, находится ли мой контент внутри iframe (или фрейма). Р>
Я хотел сравнить местоположение текущего документа с тем, которое содержит верхний объект, но кажется, что это тот же объект (окно top ===).
После продолжительного поиска в Google я попал на этот IEMobile. запись в блоге и в одном из комментариев есть ответ:
iemoblog сказал:
Нет, вы не можете получить доступ к какой-либо части родительский DOM из скрипта в iframe в IE Mobile.
20 декабря 2007 г. 12:12
Похоже, я не могу найти какую-либо документацию по этому поводу - может кто-нибудь помочь подтвердить это или даже лучше - предложить способ определить, является ли страница рамкой? Р>
Решение 2
Поскольку я никуда не попал после нахождения комментария, оставленного в Блог IE Mobile (Чарльз Моррис - менеджер программы в команде IE Mobile, на своем собственном посту) Я вынужден добавить этот ответ и заявить, что он таков:
Как задумано (или, по крайней мере, ошибка)
prc сказал :
относительно поддержки iframe: могу создать фрейм, но не могу " смотреть снаружи " рамка. & Quot; сверху & Quot; а также & Quot; родитель & Quot; оба, кажется, относятся только к сам iframe и не самый верхний предок или непосредственный предок как документация предполагает, что это должно. Есть ли способ сослаться на JavaScript переменные в прилагаемом документе изнутри фрейма? Р>
19 декабря 2007 г., 21:29
iemoblog сказал :
Нет, вы не можете получить доступ к какой-либо части родительский DOM из скрипта в iframe в IE Mobile.
20 декабря 2007 г. 12:12 PM
Другие советы
Основная проблема заключается в том, что если фрейм находится в другом домене, а не в контейнере, то ваш JavaScript-код изолирован в песочнице и не может получить доступ к другому фрейму / контейнеру.
Что вы можете сделать, это попробовать сравнить window
с window.top
, и возможные результаты:
1. То же самое - > Вы верхнее окно на странице
2. Они не одинаковы - > Вы не верхнее окно на странице, есть некоторая страница контейнера, в том же домене, что и вы, которая содержит ваше окно как фрейм или фрейм.
3. Выдается исключение безопасности - > Вы не являетесь верхним окном на странице, но верхнее окно принадлежит другому домену, и вы не можете получить к нему доступ.
может быть что-то вроде этого:
try {
if (window == window.top)
return "I'm parent";
else
return "I'm a child of " + window.top.location;
} catch (e) {
return "I'm a child of something from another domain";
}