Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   onResize IFRAME (https://javascript.ru/forum/dom-window/5760-onresize-iframe.html)

vah-smile 02.11.2009 22:40

onResize IFRAME
 
Есть код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
  <title>Маленький JavaScript для работы с IFRAME</title>
</head>

<script language="JavaScript" type="text/javascript">

window.onresize = f_script;

function f_script()
{
    var column_1 = "*"
    var column_2 = "200"
    var table_width = "100%"
    var iframe_width
    var iframe_src = "http://games.eurocazino.com/games/play.php"
    var iframe_height

    document.write ("<table border=1 width=" + table_width + ">")
    document.write ("<tr height=86>")
//Шапка
    document.write ("<td  bgcolor='#000000' valign=center align=center>")
    document.write ("<img name='shapka' src='shapka.jpg' width='568' height='85' border='0' id='shapka' usemap='#m_shapka' alt='' /><map name='m_shapka' id='m_shapka'>")
    document.write ("<area shape='rect' coords='0,70,42,85' href='javascript:;' title='Netherlands' alt='Netherlands' />")
    document.write ("<area shape='rect' coords='420,70,500,85' href='webmaster.php?id=0&amp;lang=nl' title='Neem deel aan ons affiliate programma' alt='Neem deel aan ons affiliate programma' />")
    document.write ("<area shape='rect' coords='351,70,420,85' href='newsbrief.php?id=0&amp;lang=nl' title='De nieuwsbrieven van ons Online Casino' alt='De nieuwsbrieven van ons Online Casino' />")
    document.write ("<area shape='rect' coords='312,70,351,85' href='faq.php?id=0&amp;lang=nl' title='FAQ, hints &amp; tips over hoe onze NL Speelautomaten te spelen' alt='FAQ, hints &amp; tips over hoe onze NL Speelautomaten te spelen' />")
    document.write ("<area shape='rect' coords='270,70,312,85' href='javascript:;' title='Spelregels van onze Speelautomaten' alt='Spelregels van onze Speelautomaten' />")
    document.write ("<area shape='rect' coords='227,70,270,85' href='about.php?id=0&amp;lang=nl' title='Over ons Online Casino voor NL spelers' alt='Over ons Online Casino voor NL spelers' />")
    document.write ("<area shape='rect' coords='188,70,227,85' href='index.php?id=0&amp;lang=nl' title='Homepage van NL Video Speelautomaten en Fruitautomaten' alt='Homepage van NL Video Speelautomaten en Fruitautomaten' />")
    document.write ("<area shape='rect' coords='79,70,121,85' href='?id=0&amp;lang=uk' title='United Kingdom' alt='United Kingdom' />")
    document.write ("<area shape='rect' coords='42,70,79,85' href='?id=0&amp;lang=nl' title='Belgium' alt='Belgium' />")
    document.write ("<area shape='rect' coords='0,0,132,70' href='index.php?id=0&amp;lang=nl' title='Eurocazino - Website met gratis online Speelautomaten / Fruitautomaten' alt='Eurocazino - Website met gratis online Speelautomaten / Fruitautomaten' />")
    document.write ("</map></td>")
// Правое меню
    document.write ("<td rowspan=2 width=" + column_2 + ">")
        document.write ("<h1>Nieuwste spel</h1><br>")
        document.write("<a href='javascript:open_game_new('fireandice','nl','0');void(0);'>FIRE & ICE</a>&nbsp;&nbsp;&nbsp;<font style='color: red'>NEW!</font><br />")
	    document.write("<a href='javascript:open_game('3','nl','0');void(0);'>KENO</a>")
// Конец правого меню
    document.write ("</td>")
    document.write ("</tr>")
    document.write ("<tr valign=top align=center height='*'>")
// Фрейм
    document.write ("<td width=" + column_1 + " >")

    iframe_width=(document.body.clientWidth-column_2)*0.6
    iframe_height=iframe_width * 0.75
//    document.write ("<iframe src=" + iframe_src + " width= " + iframe_width + " height=" + iframe_height + "></iframe>")
    document.write ("<br /><iframe src=" + iframe_src + " width=" + iframe_width + " height=" + iframe_height + "></iframe>")
    document.write ("</td>")

    document.write ("</tr>")
    document.write ("</table>")
}

</script>

<body onresize = "f_script()" onload="f_script()">

</body>

</html>


Почему фрейм не меняет размеры при масштабировании окна и как это сделать?

IIIEPJIOK 03.11.2009 02:50

Чаво курим? :)

Предлагаю эксперимент.
Открываешь все это в ФФ, все выделяешь (контрл+А), кликаешь правой кнопкой мыши, выбираешь пункт "Исходный код выделенного фрагмента". Обдумываешь полученный результат.

Далее, все document.write, заменяешь, на "str +=", и самой последней строчкой в функции пишешь document.body.innerHTML = str.

vah-smile 03.11.2009 13:27

Все сделал как написал IIIEPJIOK , но фрейм так и не меняет размеры при масштабировании окна. Вот что показал исходный код выделенного фрагмента:

<html>
	<head>
	</head>

<body>
	<table border="1" width="100%"><tbody>
		<tr height="86">
			<td align="center" bgcolor="#000000" valign="center"><img name="shapka" src="shapka.jpg" id="shapka" usemap="#m_shapka" alt="" border="0" height="85" width="568">&gt;</td>
			<td rowspan="2" width="200"><h1>Nieuwste spel</h1><br><a href="javascript:open_game_new(" fireandice="" nl="" ,="" 0="" );void(0);="">FIRE &amp; ICE</a>&nbsp;&nbsp;&nbsp;<font style="color: red;">NEW!</font><br><a href="javascript:open_game(" 3="" nl="" ,="" 0="" );void(0);="">KENO</a></td>
		</tr>
		<tr align="center" height="*" valign="top">
			<td width="*"><br><iframe src="http://games.eurocazino.com/games/play.php" height="493" width="658"></iframe></td>
		</tr>
	</tbody></table>
</body></html>

IIIEPJIOK 03.11.2009 14:04

У тебя не возникло вопроса, что в полученном результате нет определения твоей функции:
<html>
    <head>
    </head>
 <!-- Вопрос: куда делось определение функции?
Ответив на него, можно получить ответ на "Почему не срабатывает обработчик onresize?"-->
<body>
    <table border="1" width="100%"><tbody>


В студию, что сделал

vah-smile 03.11.2009 15:51

:) А как это сделать?...

Gozar 03.11.2009 18:05

http://javascript.ru/tutorial/events...document-write
Цитата:

А как это сделать?...
Есть DOM, есть методы для работы с ним, есть innerHTML

Кстати почему просто не вывести все через обычный html, а в функции просто обрабатывать то, что нужно, например присваивая
iframe.style.width = iframe_width
по нужному событию.

Не нужно придумывать себе лишний геморрой :)

vah-smile 04.11.2009 16:19

итак, все перевел в HTML. Что надо дописать, чтобы при масштабыровании окна IFRAME менял размеры по формуле, что записана у function resize() ?

<html>
......................
<script language="JavaScript" type="text/javascript">
function resize()
{
    var iframe_width = (document.body.clientWidth - 200) *0.64
    var iframe_height = iframe_width * 0.70

    document.getElementById('the_iframe').width = iframe_width
    document.getElementById('the_iframe').height = iframe_height
}
</script>
<body onresize='resize()'>
    ......................
    <iframe src='http://games.eurocazino.com/games/play.php' onload='resize()' id="the_iframe"></iframe>
    ......................
</body>
</html>

vah-smile 04.11.2009 16:44

Ответ на свой вопрос нашел на http://forums.asp.net/p/1147076/1860626.aspx
Всем спасибо!

Gozar 04.11.2009 17:07

Цитата:

Ответ на свой вопрос нашел
Чё за чушь, ответ на Ваш вопрос я написал еще вчера


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