Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Изменить размер iframe после загрузки


Автор: beaver 26.5.2008, 06:38
есть вот такая страничка
Код
<html>
<head>
<title>Test page</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="script.js"></script>
</head>
<body>
<div id="left">Тут немного текста :)</div>
<div id="fram"><iframe src="http://bla-bla.com/iframe.html" id="iframe"></iframe></div>
</body>
</html>
с вот таким вот файлом стилей style.css
Код

div { display: block; }
#left { float: left; width: 25%; }
#fram { float: right; width: 70%; }
#iframe { width: 100%; height: 100px; }
и есть вот такой script.js
Код

function onload(){
var iframe = document.getElementById('iframe');
iframe.height = ????;
}

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

Автор: SelenIT 26.5.2008, 11:09
Цитата(beaver @  26.5.2008,  06:38 Найти цитируемый пост)
страничка, которая вставляется внутрь фрейма для какого либо редактирования недоступна, на другом домене

Боюсь что никак. В чужой домен яваскрипту путь заказан - даже для того, чтобы спросить высоту страничку...

Автор: Ghirik 27.5.2008, 13:16
Цитата

реализовывать на PHP или чем нибудь другом не имею возможности


Что значит - "не имею возможности"?

Если просто не знаете php, то его и знать то не нужно для такой процедуры... Там всего две функции используется, одна из которых echo...  smile  Или на сервере вообще не поддерживаются языки?

На всякий случай, приведу пример такой реализации, это я прямо сейчас сляпал, без расчета на какой либо конкретный сайт, потому, ни таблицы стилей ни скрипты не работают в загружаемой странице. Но если эту штуку делать под конкретный сайт, то можно всё это настроить. Хакерство, конечно... но я и код не выкладываю, чтобы школьники не баловались...

http://door-to.ru/graber/viewing.php и получите любой контент, уже со своего сервера.  smile 

p.s. door-to.ru - это мой сервер.


Автор: beaver 30.5.2008, 12:49
Цитата
Что значит - "не имею возможности"?
Это буквально и означает, что не имею возможности. И основная страница и подключаемая в ифрейм на чистом html, ни каких PHP, Perl и т.д. использовать нельзя, только html и javascript

Автор: bars80080 30.5.2008, 13:16
слушайте, а что за эффект, поставил iframe, задал src другой хост (яндекс тот же), и при открытии страницы меня резко перебрасмывает на этот адрес, что в ИЕ6, что ФФ

?

Добавлено через 20 секунд
неужели ОС глючит?

Автор: beaver 30.5.2008, 13:49
что касается яндекса, то обрати внимание на этот вот код
Код
if(self.parent.frames.length!=0){self.parent.location=document.location}

Автор: bars80080 30.5.2008, 14:01
@!, 

и главное я проверил на своём сайте, он тоже меня выкинул на главное окно, там-то откуда? /бесплатный хост наверно навешивает/

google.com нормально прокатил

Автор: Ghirik 30.5.2008, 21:48
Цитата

Это буквально и означает, что не имею возможности. И основная страница и подключаемая в ифрейм на чистом html, ни каких PHP, Perl и т.д. использовать нельзя, только html и javascript 


Ну, тоды, ОЙ!


Автор: babe 2.6.2008, 12:45
эээ, а можно ли предложить глупую идею? если что-раскритикуйте ))
нельзя ли сделать диву в котором лежит ифрейм дисплей инвизибюл изначально, загрузить страницу-тогда страничка в ифрейме станет частью кода , и скриптом, повешенным на онлоад обработать уже этот ифрейм, получить у него высоту, сделать с ним все необходимое и потом уже выставить диву  визибл?

Автор: bars80080 2.6.2008, 13:00
да получить высоту самого iframe не проблема, но по задаче нужно высоту приравнять контенту, а определить свойства объектов находящихся под другим доменом правила не позволят



вот если бы iframe автоматически растягивался по контенту, тогда  и проблемы бы не существовало

Автор: Ghirik 2.6.2008, 15:10
Цитата

что касается яндекса, то обрати внимание на этот вот код
код Javascript 
1:

 if(self.parent.frames.length!=0){self.parent.location=document.location}
 
 

Вообще, наверное, этот код не такая уж и проблема. Можно ведь и до того свой скрипт вставить и выполнить. Если настраиваться на конкретный ресурс, то можно всё! smile Лишь бы ресурс в принципе отдавал контент... серверу...

Автор: sfrolov 12.8.2009, 14:38
Цитата(Ghirik @ 2.6.2008,  15:10)
Цитата

что касается яндекса, то обрати внимание на этот вот код
код Javascript 
1:

 if(self.parent.frames.length!=0){self.parent.location=document.location}
 

Посмотрел в IE и в Опере - ya.ru оказывается во врейме

http://images.google.ru/imgres?imgurl=http://www.ya.ru/logo.png&imgrefurl=http://ya.ru/&usg=__9r6IrlXk8aNDVmTD2COIGz13xyI=&h=44&w=100&sz=2&hl=ru&start=2&um=1&tbnid=0D77715L1uGieM:&tbnh=36&tbnw=82&prev=/images%3Fq%3D%25D1%258F%25D0%25BD%25D0%25B4%25D0%25B5%25D0%25BA%25D1%2581%2Bsite:ya.ru%26complete%3D1%26hl%3Dru%26lr%3Dlang_ru%26um%3D1%26newwindow%3D1

То есть этот скрипт там уже не работает?

Автор: bars80080 12.8.2009, 22:09
Цитата(sfrolov @  12.8.2009,  14:38 Найти цитируемый пост)
Посмотрел в IE и в Опере - ya.ru оказывается во врейме

у вас наверно жёсткие ограничения на выполнения скриптов заданы в браузерах

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)