Чтобы получить объект window
для кадра, вы можете использовать массив window.frames
:
var iframewindow= frames['iframe_name'];
Для этого требуется, чтобы вы присвоили атрибуту <iframe>
old-school name
вместо "или-или-как-хорошо", как id
. В качестве альтернативы, если вы знаете порядок размещения фреймов на странице, вы можете индексировать их численно:
var iframewindow= frames[0];
Как правило, более гибко получить окно iframe из элемента iframe в DOM, но для этого требуется некоторый код совместимости, чтобы справиться с IE:
var iframe= document.getElementById('iframe_id');
var iframewindow= iframe.contentWindow? iframe.contentWindow : iframe.contentDocument.defaultView;
jQuery определяет метод contents () для захвата узла document
, но он не дает вам кросс-браузерный способ перехода от document
к window
, поэтому вы все еще застряли с:
var iframe= $('#iframe_id')[0];
var iframewindow= iframe.contentWindow? iframe.contentWindow : iframe.contentDocument.defaultView;
что на самом деле не большая победа.
(Примечание: будьте очень осторожны, используя jQuery для межкадрового скриптинга. Каждому кадру требуется своя копия jQuery, и методы из копии одного фрейма не обязательно будут работать на узлах другого. тема таит в себе ловушки.)