Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> событие по загрузке фрейма 
:(
    Опции темы
bars80080
Дата 16.2.2012, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



на странице есть фрейм. хочу со страницы апосля загрузки фрейма узнать высоту получившегося окна внутри, чтобы затем расширить высоту фрейма.

один домен на страницу и фрейм.

таким образом, я почему-то даже до загрузки не добрался

Код

var win = document.getElementById('frame').window;
$(win.document).ready(function() { alert('er'); });


или так

Код

$($('#frame').window.document).ready(function() { alert('vb'); });


получилось добраться только через банальное:
Код

<iframe id="frame" src="/some" onload="re_size_frame(this);"></iframe>


но взять высоту внутренностей не получилось. что с помощью jquery, что напрямую
PM MAIL WWW   Вверх
Leshak
Дата 16.2.2012, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



недавно мучился с содержимым iframe

есть такой ход 

height_temp = $("#iframe").contents().find("блок внутри iframe").css('height');

проверить сейчас сам не смогу... 
но помнится доступ такой.
и это не "кросбраузерно" помнится
потому как некоторые закрывают всякий доступ к содержимому  iframe

PM MAIL   Вверх
bars80080
Дата 16.2.2012, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Цитата(Leshak @  16.2.2012,  12:04 Найти цитируемый пост)
height_temp = $("#iframe").contents().find("блок внутри iframe").css('height');

не, в хроме не работает

Код

height_temp = $("#iframe").contents().find("body").css('height');


сейчас пытаю такое:

Код

function re_size_payment() {

    var _doc = null;
    if(!_doc && document.getElementById('frame').document && document.getElementById('PAYFR').document.body.scrollHeight) {
        _doc = document.getElementById('frame').document.body.scrollHeight;  
    }
    if(!_doc && document.getElementById('frame').contentWindow) {
        _doc = document.getElementById('frame').contentWindow.document.body.scrollHeight;
    }
    alert(_doc);
    _doc += 10;
    
    $('#frame').css('height', _doc + 'px');
}

но в файерфоксе он определяет высоту самого фрейма, а не содержимого
PM MAIL WWW   Вверх
Leshak
Дата 16.2.2012, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



возможно не работает потму что буква лишняя в id


height_temp = $("#frame").contents().find("body").css('height');
PM MAIL   Вверх
bars80080
Дата 16.2.2012, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



нет, я там свой айдишник вообще подставлял

опытным путём вроде как запахал такой код:

Код

function autoIframe(frameId){ 
    try { 
        frame = document.getElementById(frameId);
        innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
        var h = $(frame.contentDocument).height() + 20;
        $('#' + frameId).css('height', h + 'px');
    } 
    catch(err){ 
    } 
}

Код

<iframe id="frame" src="/some" onload="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('frame');}"></iframe>


код ещё хорош тем, что легко вызывается из любой другой функции. к примеру, те что отрабатывают результат аякс-запросов

проверил в хроме, ФФ, опере и ИЕ8
PM MAIL WWW   Вверх
ksnk
Дата 16.2.2012, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Код

<button onclick="alert(document.getElementById('xxx').contentWindow.document.body.scrollHeight)">Click</button>
<iframe id="xxx" src="test1/index.html">

Вроде вот такое работает.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0768 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.