Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   iframe на javascript в Chrome (https://javascript.ru/forum/css-html-browser/29059-iframe-na-javascript-v-chrome.html)

spals 13.06.2012 15:11

iframe на javascript в Chrome
 
Всем добрый день, прошу помощи, у меня проблема с отображение iframe на javascript в Chrome, в других браузерах всё нормально, проблема в том что страничка начинает ползти вниз, при первой загрузке всё нормально но в последующих перемещениях по страничкам сама страничка ползёт вниз. До бесконечности. В чём может быть проблема? Что можно изменить в коде? За помощь буду очень благодарен.

Вот моежете проверить сами ТЫК

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Demo iframe Resize by Exterior</title>

<script type="text/javascript">
<!--
var timeout;

function clickAction() {
	frameFitting();
	var fr = document.getElementById('demo_frame').contentWindow.document.body.getElementsByTagName('a');
	for (var i=0; i<fr.length; i++) {
		fr[i].onclick = function() {
			clearInterval(timeout);
			timeout = setInterval("frameFitting()",100);
		}
	}
}

function frameFitting() {
	document.getElementById('demo_frame').width = '100%';
	document.getElementById('demo_frame').height = document.getElementById('demo_frame').contentWindow.document.body.scrollHeight+4+'px';
}

onload = clickAction;
//-->
</script>

</head>

<body>

<iframe src="http://cs.city.kg/stats/index.php" id="demo_frame" align="center" scrolling="no" frameborder="0" marginheight="0" marginwidth="0" width="100%"></iframe>

</body>
</html>

spals 13.06.2012 18:50

Help:-?

bes 13.06.2012 20:10

У вас frameFitting() увеличивает высоту фрейма , а в clickAction() назначаются обработчики кликов по ссылкам: нажав какую-нибудь ссылку, вы запустите setInterval, который будет вызывать frameFitting() через 100мс, что и будет постепенно увеличивать высоту фрейма.
Не совсем понятно, чего вы хотите добиться, назначая такие обработчики клика ссылкам.

spals 13.06.2012 20:17

Я в жатве пока совсем дуб, мне всего то что бы страница не съезжала вниз, вот щас порыскал по форуму ничего путного на замену не нашёл.

Мне самое главное автоматическая прокрутка, что бы не было это го ползунка...

bes 13.06.2012 20:19

Цитата:

Сообщение от spals
Я в жатве пока совсем дуб, мне всего то что бы страница не съезжала вниз, вот щас порыскал по форуму ничего путного на замену не нашёл.

В смысле, чтобы не было того, что сейчас??

spals 13.06.2012 20:28

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

bes 13.06.2012 20:33

Скажите, что хотите сделать-то?

spals 13.06.2012 20:36

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script language="JavaScript">
<!--
function autoResize(id){
    var newheight;
    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}
//-->
</script>

<IFRAME SRC="http://cs.city.kg/cs" width="100%" height="200px" id="iframe1" marginheight="0" frameborder="0" onLoad="autoResize('iframe1');"></iframe>
 </body>
 </html>

bes 13.06.2012 20:47

Попробуйте так
<iframe src="index.htm" 
  onload=" this.height = this.contentWindow.document.body.scrollHeight; 
"></iframe>

bes 13.06.2012 20:56

То есть используйте обработчик загрузки фрейма, в который и поместите код задания размеров этого фрейма (больше ничего не требуется).
Заработает, когда будет на сервере (или через denwer, например), на локальном компьютере проверить не даст политика безопасности.


Часовой пояс GMT +3, время: 11:25.