Кадры используются для хранения подпажков, либо iframes, либо рамки. Объект Window - это глобальный объект, и все функции и объекты на странице находятся в его объеме.
1. Родитель представляет родительское окно. Если в родительском окне есть несколько слоев гнездования, топ представляет родительское окно верхнего уровня.
Самостоятельно представляет саму окно.
if (self == top) {//} просто определите, находится ли окно на верхнем уровне if (self == parent) {} //2.1. Родительская страница обращается к детской странице элементы. Идея состоит в том, что все элементы подпаги находятся в его окне. Объект для окна. Сначала просто получите его, а затем легко сказать.
Лучше всего установить атрибут имени для кадра, что является наиболее удобной работой. нравиться
<iframe name = "test" src = "child.html"> </iframe>
Если вы хотите получить элемент с меню идентификатора в Child.html, вы можете написать это так:
window.frames ["test"]. Document.getElementById ('menu'); // Поскольку все функции хранятся в объекте окна, можно удалить начальное окно: Rames ["test"]. Document.getElementById ('Menu'); // В браузере атрибут имени кадра эквивалентен окне объекта подпаги по умолчанию, поэтому он может быть дополнительно сокращен: test.document.getElementById («меню»);2.2 Родительская страница доступа к детской странице Функции или объектов. Функции и объекты под страницы находятся в их окне, так же, как и выше, ключ - получить объект.
// Если child.html определяет функцию Showmesg и необходимо вызвать в родителе, то напишите window.frames ['test']. Showmesg (); // Сокращенная форма Test.showmesg (); // Аналогично, объект также обращается к оповещению (тест. Pperson);
2.3 Другие способы получения документов.
Сначала используйте 'Document.getElementById ()' или 'Document.GetElementsBytagName ()', чтобы получить кадр в качестве элемента под документом, а затем получить доступ к его атрибуту ContentDocument/ContentWindow (iframe, Frame-Specifice), первым поддерживается IE7-NOT, а второй не поддерживается.
<iframe id = "testid" src = "child.html"> </iframe> // ===== VAR DOC = Document.getElementById ('testId'); // или var doc = document.getElementsbytagname ('iframe') [0]; Тогда var winordoc = doc.contentdocument || doc.contentwindow; // выберите один из двух if (winordoc.document) winordoc = winordoc.document; Winordoc.getElementById («Меню»); // Если вам нужен объект Window, напишите его так: if (winordoc.defaultview) winordoc = winordoc.defaultview;3.1 Дочерняя страница доступа к элементам родительской страницы. Та же идея, что и 2.1, сначала получите родительское окно окна.
parent.window.document.getElementByid ('Parentmenu'); // аббревиатура parent.document.getElementbyId ('parentmenu');3.2. Страница дочерней страницы обращается к функции родительской страницы или объекту. Та же идея, что и 2.2, сначала получите объект окна родительского окна.
parent.parentfunction ();
Наконец, давайте упомянем ту же стратегию происхождения JS, то есть код JS, расположенный на веб -сайте A, не разрешает доступ к контенту, расположенному на веб -сайте B, даже если код происходит с веб -сайта B. Если кадр является страницей других веб -сайтов, то при доступе друг к другу в соответствии с вышеуказанным методом браузер должен запросить: 'ошибка разрешения.