Вопрос

У меня есть окно в рамке (в настоящее время 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";
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top