Доступ к элементам в одном наборе кадров из другого набора - PullRequest
1 голос
/ 19 января 2011

У меня есть html-страница, на которой у меня есть два набора фреймов, каждый из которых указывает на разные html.

Теперь допустим, у меня есть текстовое поле в первом наборе фреймов (html) и кнопка во втором наборе фреймов (html).

Может кто-нибудь сообщить мне, как скрыть текстовое поле при нажатиикнопка?

Ответы [ 3 ]

1 голос
/ 19 января 2011

Вы можете сделать все вышеперечисленное, только если два кадра находятся в одном домене.Из-за браузеров политики безопасности , если кадры не находятся в одном домене и даже в одном и том же протоколе, они не могут взаимодействовать друг с другом (о javascript не может быть и речи).

1 голос
/ 19 января 2011

не тестировалось, но должно быть так (в onclick-обработчике вашей кнопки):

parent.frames[1].document.getElementByid('mytextfield').style.display = 'hidden';
//           ^^^ here you could also access the frame by its name using ['mysecondframe']
0 голосов
/ 19 января 2011

Вы можете получить доступ к элементу через функцию getElementById для объекта document рассматриваемого кадра (обратите внимание, что мы используем целевой кадр document, а не наш собственный). Вы можете получить кадр из набора фреймов по имени & mdash; имена фреймов становятся свойствами объекта window фрейма.

Пример ( живая копия ; код кадра кнопки ):

var textbox = parent.targetFrame.document.getElementById('theTextBox');
textbox.value = "You clicked at " + new Date();

... где targetFrame - имя целевого кадра. Вы также можете использовать frames[n], где n - индекс фрейма в наборе фреймов, но я считаю имена более надежными.

Приведенный выше пример протестирован и работает в Firefox, Chrome и Opera для Linux и IE6 & mdash; и так должно работать на широком наборе браузеров.

...