получение ссылки на iframe из содержимого в этом iframe
Дано:
index.html - главная страница, она содержит iframe, который содержит страницу iframe.html этого же сайта и домена. хтмл код index.html: <iframe id='ifr1' src='i1.html'></iframe> <iframe id='ifr2' src='iframe.html'></iframe> <iframe id='ifr3' src='i2.html'></iframe> Яваскрипт в iframe.html может обратиться к родительскому окну window.parent, это многим известно, но вот как получить ссылку на ифрейм в этом родительском окне, который содержит текущее окно. т.е. window.parent.document.getElementById('ifr2') ? Но только это сделать без вспомогательных id и прочих механизмов, например сравнительных проверок через цикл всех iframe в index.html а более изящно, или это не возможно? Для чего это надо: высота содержимого в iframe.html может динамически меняться, поэтому требуется соответствующим образом изменять и высоту самого iframe, присваивая тоже значение. Ну а чтобы менять высоту iframe, разумеется, нужна ссылка на него. |
Можно попробовать window.frameElement. Сам не пользовался таким. В хроме точно есть. Надеюсь что это кроссбраузерное свойство. Отпишитесь по результатам тестов.
|
Если фреймы с того же домена , то сам фрейм может сам у себя изменить высоту- ширину согласно размерам своего контента
<iframe name="iframe0" src='i1.html'></iframe> cкрипт во фрейме исполняет такую команду parent.iframe0.width = XX iframe0 - имя текущего фрейма |
Цитата:
|
Цитата:
Вот window.frameElement. - вариант. Ещё вариант: getParentIframe=function() { var ifrs=window.parent.document.getElementsByTagName('iframe'); var fr; for(var i=0; i < ifrs.length; i++ ) { var ifrsi=ifrs[i]; if(ifrsi.contentWindow.document==document){fr=ifrsi; break;}; }; return fr; }; но он неуклюж, хоть и не-такой критичный с практической точки зрения. |
parent.document.getElementsByTagName('iframe')[N] - N - индекс фрейма в body
|
Часовой пояс GMT +3, время: 08:12. |