frames

window.frames - список

<frame> і <iframe>

Синтаксис:

window.frames

Опис:

frames масивоподібний об'єкт об'єкта window в якому міститься список

<frame> і <iframe>
які є на поточній веб-сторінці.

Звертатися до фреймів можна по індексу за допомогою квадратних дужок.

frames[0]; //повертає фрейм по індексу 0

Також до фрейму можна звертатися по його назві, яку вказано в атрибуті name:

<iframe name="test_frames" src=""></iframe> frames['test_frames']; //по name frames.test_frames; //по name другий спосіб frames[0]; // по індексу

Через фрейм можна звертатися безпосередньо до об'єкта window фрейму.

frames['test_frames'].window; frames['test_frames'].scrollTo(0, 300); alert( frames['test_frames'].location.href )

Зверніть увагу що за політикою безпеки браузера забороняється доступ до об'єкта window фрейму у випадку коли домен фрейму є іншим від домену сторінки на якому виконується JavaScript.

Приклад виникнення помилки якщо звертатися до window фрейму з іншого домену:

document.getElementsByName('test_frames')[0].onload=function(){ var f= frames['test_frames']; alert( f.window.name ); // Error: Permission denied to access property "name" } document.getElementsByName('test_frames')[0].src="http://ukr.net/";

Браузери забороняють читати URL адресу фрейму з іншого домену, але дозволяють її змінювати:

frames['test_frames'].window.location.href='http://яваскрипт.укр';

Приклад:

f= frames['test_frames']; f.document.write('test frames');

Якщо необхідно робити маніпуляції з document фрейму то потрібно це робити після завантаження фрейму:

document.getElementsByName('test_frames')[0].onload=function(){ // фрейм завантажено var f= frames['test_frames']; f.document.getElementsByTagName('p')[0].innerHTML='Тест фрейму.'; } document.getElementsByName('test_frames')[0].src="http://яваскрипт.укр/location";