|
|
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Люмаю голову у же 2-й день над следующей проблемой: Есть сайт, некоторые страницы которого должны содержать контент с другого сайта, причем не важно в DIV блоках или в IFRAME. Но проблема в следующем: контент содержит относительные ссылки на страницы того же ресурса, откуда он берется => т.е. DIV блок + загрузка контента в innerHTML с помощью AJAX запроса отпадает. Остается IFRAME, но есть следующее обязательное требование - в IFRAME не должно быть полос прокрутки и весь размер его должен менятся в соответствии с высотой контента. Но если загружать контент изменяя параметр SRC в IFRAME-е, то myIFrame.Document.body.scrollHeight - недоступен (security ограничения броузера), т.е. невозможно узнать реальный размер загруженного документа, чтобы отресайзить IFRAME. Может кто сталкивался с проблемой, подскажите, что тут еще можно придумать? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 21:34 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
какой браузер для Opera не идёт я делал что то похожее поищу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 23:29 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
попробуй так у меня работает в IE MOZILLA таймер если запрос долгий <script language="JavaScript"> var w, q="0" function AA(a) { var p="I1" //iframe document.getElementById(p).width=2 document.getElementById(p).height=2 document.getElementById(p).style.width=2 document.getElementById(p).style.height=2 q="0" document.getElementById(p).src=a //запрос w=setInterval("SSS()",500) } function SSS() { var p="I1" //iframe if(q=="1") { clearInterval(w) if (document.getElementById(p).contentWindow.document.body.scrollHeight) { var y=document.getElementById(p).contentWindow.document.body.scrollHeight + 10 var x=document.getElementById(p).contentWindow.document.body.scrollWidth + 10 } else if(document.getElementById(p).contentWindow.document.body.offsetHeight) { var y= document.getElementById(p).contentWindow.document.body.offsetHeight + 10 var x= document.getElementById(p).contentWindow.document.body.offsetWidth + 10 } document.getElementById(p).width=x + "px" document.getElementById(p).height=y + "px" document.getElementById(p).style.width=x + "px" document.getElementById(p).style.height=y + "px" } } function WWW() { q="1" } </script> <html> <body onload="AA(запрос)" > <input type="button" value="q" onclick="AA(другой запрос)"> <input type="button" value="w" onclick="AA(ещё другой запрос)"> <table > <tbody> <tr> <td> <iframe onload="WWW()" width="100" height="100" name="I1" id="I1" src="" /> </td> </tr> </tbody> </table> </body> </html> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 23:50 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
michael Rкакой браузер для Opera не идёт я делал что то похожее поищу Поищи пожалуйста, браузеры: IE, FF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 09:12 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
To michael R Спасибо, не заметил следующий пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 09:16 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Твой скрипт выдает ошибку на строке: Код: plaintext 1. Ошибка, как я и описал раньше: Access denied Смотрел в браузере IE 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 09:25 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
а сам запрос в каком виде нужен полный путь+ HTTP://.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 10:09 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Запрос такой: http://google.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:30 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
а тебе только Iframe нужен ? другое не пойдёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:41 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Пойдет любой код, который будет показывать контент с другого домена и при этом будут работать относительные ссылки внутри таких "внешних" страниц. Хотя бы идею, весь код не обязательно приводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:43 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
идея такая запрос к Iframe (скрытый на форме ) var idFrm="FRAME1" document.getElementById(idFrm).src=запрос запустить таймер есть таблица и её ячейка с Id(уникальное) функция на таймер проверять если загрузился Iframe if(document.getElementById(idFrm).contentWindow.document.body.innerHTML!="") { clearInterval(timer1) document.getElementById(id).innerHTML= document.getElementById(idFrm).contentWindow.document.body.innerHTML } ячейка сама раздвинется попробуй так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:57 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
не уверен по -поводу разных браузеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:58 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
по-поводу изменения Iframe атоматически у меня тоже уже не работает поставил новые версии Mozilla / и IE в старых работало ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:02 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
У меня таже задача! Кто-нибудь решил ее??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 14:50 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Вообщем, решил так: в документе, который загружается во фрейм пишу функцию, которая выполняется при загрузке этого документа: function movesize() { //subwin - имя фрейма, в который загружается документ subw = parent.document.getElementById('subwin'); //поиск элемента в родителе subw.style.height = document.body.scrollHeight+'px'; //считывание и установка высоты } <body OnLoad="movesize();"> Только теперь проблема в другом: если документ грузить не через фрейм, а, так сказать самостоятельно, то родительского документа не существует, следовательно, и искать не в чем. Вот это событие надо как-нибудь обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 20:58 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Как оказалось, проблема решается обычной проверкой на существование искомого объекта. Вот немного модифицированная функция: function movesize() { if (parent.document.getElementById('subwin')) { subw = parent.document.getElementById('subwin'); subw.style.height = document.body.scrollHeight+'px'; } } Работает в IE и Opera ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 21:25 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
нечитал, но интерестно = а отпарсить все ссылки и поменять их на абсолютные - разве не будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 21:42 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
Спецы, все-то оно хорошо, но вот дела... Не поленился бы кто-нить, да написал полный код Приемной страницы, а то у меня не работает... Какой-то тег забыл, что ли или запятую... Я еще не волшебник, я только учусь... Спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2008, 15:41 |
|
||
|
Iframe auto-resizing
|
|||
|---|---|---|---|
|
#18+
в результате выполнения вотэтого Код: plaintext 1. 2. 3. 4. не яваскрипт, конечно. да и под "относительной ссылкой" иногда понимаются разные совсем вещи. ну, ваапщета, и регексп простенький - не учитывает всех условий... но у мны работает)))) ща попробую то-же, но на ЖС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2008, 17:41 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=34577831&tid=1456875]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 502ms |

| 0 / 0 |
