Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2013, 21:48
Аспирант
Отправить личное сообщение для mister_maxim Посмотреть профиль Найти все сообщения от mister_maxim
 
Регистрация: 09.02.2009
Сообщений: 57

получение ссылки на 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, разумеется, нужна ссылка на него.
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2013, 22:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Можно попробовать window.frameElement. Сам не пользовался таким. В хроме точно есть. Надеюсь что это кроссбраузерное свойство. Отпишитесь по результатам тестов.
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2013, 22:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Если фреймы с того же домена , то сам фрейм может сам у себя изменить высоту- ширину согласно размерам своего контента

<iframe name="iframe0" src='i1.html'></iframe>

cкрипт во фрейме исполняет такую команду
parent.iframe0.width = XX
iframe0 - имя текущего фрейма
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2013, 22:31
Аспирант
Отправить личное сообщение для mister_maxim Посмотреть профиль Найти все сообщения от mister_maxim
 
Регистрация: 09.02.2009
Сообщений: 57

Сообщение от danik.js Посмотреть сообщение
Можно попробовать window.frameElement. Сам не пользовался таким. В хроме точно есть. Надеюсь что это кроссбраузерное свойство. Отпишитесь по результатам тестов.
На лисе и опере тоже есть, осла не имею, спасибо, dank.js.
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2013, 22:44
Аспирант
Отправить личное сообщение для mister_maxim Посмотреть профиль Найти все сообщения от mister_maxim
 
Регистрация: 09.02.2009
Сообщений: 57

Сообщение от Deff Посмотреть сообщение
Если фреймы с того же домена , то сам фрейм может сам у себя изменить высоту- ширину согласно размерам своего контента

<iframe name="iframe0" src='i1.html'></iframe>

cкрипт во фрейме исполняет такую команду
parent.iframe0.width = XX
iframe0 - имя текущего фрейма
А если имя фрейму и даже id я назначать не хочу... много у меня может быть ифреймов на главной и не хочу париться с соответствиями имён с указываемых на них именами в iframe.html.
Вот 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;
};

но он неуклюж, хоть и не-такой критичный с практической точки зрения.

Последний раз редактировалось mister_maxim, 15.02.2013 в 22:47.
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2013, 22:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

parent.document.getElementsByTagName('iframe')[N] - N - индекс фрейма в body
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение "чистого" адреса ссылки. LRCenter Events/DOM/Window 3 05.07.2011 17:08
Авторазмер динамического iframe в зависимости от содержимого phenom jQuery 0 01.02.2011 18:29
Получение Url страницы загруженной в iframe taraba4 Общие вопросы Javascript 40 05.01.2011 02:39
Получение текстового содержимого из всех вложенных DOM EmDmAl Events/DOM/Window 8 02.12.2009 23:38
получение cookies из iframe Рубик Events/DOM/Window 1 21.09.2009 23:39