HTML
<html>
<head>
<title>Load Data on the fly</title>
<style type="text/css">
.cent {position: absolute; left: 25%; top: 20%; border-width: 3; border-color: #3399ff; border-style: solid; width: 50%; height: 50%; overflow-x: hidden; overflow-y: auto; z-index: 2;}
in {width: 100%; height: 100%;}
</style>
<script language="JavaScript">
function loadDataFromFrame()
{
parent.fload.location = 'load.html';
var data = parent.fload.document.getElementById('sss').innerHTML;
document.getElementById('loading').innerHTML = data;
}
</script>
</head>
<body onLoad="loadDataFromFrame();">
<div class="cent" id="show_hide">
<div style="position: relative; width: 100%; height: 10px; border-width: 0; padding: 0; margin: 0; z-index: 3; background-color: #99ff99;" align="right"><img src="close_w.gif" border="0"></div>
<div id="loading" class="in"></div>
</div>
<iframe width="20%" height="70%" border="4" style="display: yes;" name="fload"></iframe>
12
</body>
</html>
<head>
<title>Load Data on the fly</title>
<style type="text/css">
.cent {position: absolute; left: 25%; top: 20%; border-width: 3; border-color: #3399ff; border-style: solid; width: 50%; height: 50%; overflow-x: hidden; overflow-y: auto; z-index: 2;}
in {width: 100%; height: 100%;}
</style>
<script language="JavaScript">
function loadDataFromFrame()
{
parent.fload.location = 'load.html';
var data = parent.fload.document.getElementById('sss').innerHTML;
document.getElementById('loading').innerHTML = data;
}
</script>
</head>
<body onLoad="loadDataFromFrame();">
<div class="cent" id="show_hide">
<div style="position: relative; width: 100%; height: 10px; border-width: 0; padding: 0; margin: 0; z-index: 3; background-color: #99ff99;" align="right"><img src="close_w.gif" border="0"></div>
<div id="loading" class="in"></div>
</div>
<iframe width="20%" height="70%" border="4" style="display: yes;" name="fload"></iframe>
12
</body>
</html>
load.html
HTML
<html>
<body>
<div id="sss">
<table width="100%" cellspacing="0">
<tr>
<td colspan="2" bgcolor="#99ff99">
<b>!Что посмотреть</b>
</td>
</tr>
<tr>
<td width="100px"><b>Stas</b></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> Классная вешь!<br>Обязательно посмотрите!<br>Лучше смотреть сам трэйлеры нежели комментарии к ним каких-то оболдуев.
</td>
</tr>
<tr>
<td width="100px"><b>Gesser</b></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> Про балбесов мягко сказано...
</td>
</tr>
</table>
</div>
</body>
</html>
<body>
<div id="sss">
<table width="100%" cellspacing="0">
<tr>
<td colspan="2" bgcolor="#99ff99">
<b>!Что посмотреть</b>
</td>
</tr>
<tr>
<td width="100px"><b>Stas</b></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> Классная вешь!<br>Обязательно посмотрите!<br>Лучше смотреть сам трэйлеры нежели комментарии к ним каких-то оболдуев.
</td>
</tr>
<tr>
<td width="100px"><b>Gesser</b></td>
<td> </td>
</tr>
<tr>
<td colspan="2"> Про балбесов мягко сказано...
</td>
</tr>
</table>
</div>
</body>
</html>
В пятом IE и Опере 9.10 не работает.
Должон, как видите содержимое из ифрэйма подгрузившегося писать в див.
а эксплорер пишет, что объект не поддерживает метод или что-то такое.
В фоксе 2.0 и IE 6 работает.
Спустя 4 часа, 4 минуты, 50 секунд (26.04.2007 - 11:37) Timok написал(а):
что бы получить содержимое документа во фрейме надо использовать contentWindow
Код
document.getElementById("iframe_id").contentWindow.document.getElementById("sss").innerHTML;
Спустя 3 часа, 48 минут, 19 секунд (26.04.2007 - 15:25) Gandjubas написал(а):
О спасибо тебе, всемогущий Тимок!
Вечерком проверю
Вечерком проверю
Спустя 17 часов, 37 минут, 44 секунды (27.04.2007 - 09:03) Gandjubas написал(а):
А метод этот только для Оперы?
В общем, всё у меня работает.
Только одна проблема есть:
если после второго шага поставить алерт, то после нажатия на кнопку окей на алерте, див показывается с необходимым содержимым.
Я так подозреваю, что это всё из-за времени загрузки содержимого фрэйма.
Вот тут на форуме есть "быстрое редактирование". И когда нажимаешь на кнопку, то появляется картинка "Загрузка" (красивая такая и двигающаяся) а после сама форма.
Вот как мне сделать что-то типа этого. Не обязательно с картинками. Просто нужна проверка на окончание загрузки содержимого из фрэйма.
В общем, всё у меня работает.
Только одна проблема есть:
- присваиваю src для фрэйма
- считываю содержимое фрэйма
- присваиваю содержанию скрытого дива содержание фрэйма
- делаю див видимым
если после второго шага поставить алерт, то после нажатия на кнопку окей на алерте, див показывается с необходимым содержимым.
Я так подозреваю, что это всё из-за времени загрузки содержимого фрэйма.
Вот тут на форуме есть "быстрое редактирование". И когда нажимаешь на кнопку, то появляется картинка "Загрузка" (красивая такая и двигающаяся) а после сама форма.
Вот как мне сделать что-то типа этого. Не обязательно с картинками. Просто нужна проверка на окончание загрузки содержимого из фрэйма.
Спустя 1 час, 28 минут, 34 секунды (27.04.2007 - 10:31) Timok написал(а):
короче вот пример:
работает одинаково во всех браузерах
возможно ошибка у тебя где-то в другом месте. Поставь firefox и firebug к нему и посмотри...
или опиши задачу подробнее, т.е. что именно ты делаешь? Для динамической подгрузки данных есть аякс...
Код
<style type="text/css">
#div{
background:#eee;
display:none;
width:200px;
height:200px;
}
#iframe{
width:200px;
height:200px;
}
</style>
<div id="div"></div>
<iframe id="iframe" src="xxxxx.html"></iframe>
<button onclick="changeMode();">баттон</button>
<script type="text/javascript">
function changeMode()
{
var div = document.getElementById("div");
var iframe = document.getElementById("iframe");
if (! div.offsetHeight) {
div.innerHTML = iframe.contentWindow.document.body.innerHTML;
div.style.display = "block";
} else {
div.style.display = "none";
}
}
</script>
#div{
background:#eee;
display:none;
width:200px;
height:200px;
}
#iframe{
width:200px;
height:200px;
}
</style>
<div id="div"></div>
<iframe id="iframe" src="xxxxx.html"></iframe>
<button onclick="changeMode();">баттон</button>
<script type="text/javascript">
function changeMode()
{
var div = document.getElementById("div");
var iframe = document.getElementById("iframe");
if (! div.offsetHeight) {
div.innerHTML = iframe.contentWindow.document.body.innerHTML;
div.style.display = "block";
} else {
div.style.display = "none";
}
}
</script>
работает одинаково во всех браузерах
возможно ошибка у тебя где-то в другом месте. Поставь firefox и firebug к нему и посмотри...
или опиши задачу подробнее, т.е. что именно ты делаешь? Для динамической подгрузки данных есть аякс...
Спустя 1 день, 19 минут, 32 секунды (28.04.2007 - 10:51) Gandjubas написал(а):
Цитата(Timok @ 27.4.2007, 7:31) [snapback]19225[/snapback]
короче вот пример:
...
работает одинаково во всех браузерах
...
работает одинаково во всех браузерах
в пятом IE не работает
Цитата(Timok @ 27.4.2007, 7:31) [snapback]19225[/snapback]
опиши задачу подробнее, т.е. что именно ты делаешь?
есть N ссылок.
когда нажимаешь на одну из них, появляется окошко (ДИВ) посередине окна с определённым содержимым, которое генерируется PHP-скриптом.
Цитата(Timok @ 27.4.2007, 7:31) [snapback]19225[/snapback]
Для динамической подгрузки данных есть аякс...
Я сходил на форум http://forum.vingrad.ru/forum/Javascript.html и там мне посоветовали сделать скрытый фрэйм ссылку "направить" туда и присваивать диву содержимое из фрэйма.
Спустя 49 минут, 27 секунд (28.04.2007 - 11:40) Timok написал(а):
Цитата
в пятом IE не работает
недобраузеры не учитываю
Спустя 54 минуты, 45 секунд (28.04.2007 - 12:35) Gandjubas написал(а):
Цитата(Timok @ 28.4.2007, 8:40) [snapback]19413[/snapback]
Цитата
в пятом IE не работает
недобраузеры не учитываю
а 5.5 тоже недоброузер?
Спустя 4 часа, 20 минут, 3 секунды (28.04.2007 - 16:55) Timok написал(а):
да я вообще осла недоблюбливаю 5.5 у меня нету, тестить там не удаётся.
Попробуй заменить document.getElementById("id") на document.all("id") может прокатит
Попробуй заменить document.getElementById("id") на document.all("id") может прокатит
Спустя 3 дня, 17 часов, 11 минут, 17 секунд (2.05.2007 - 10:06) Gandjubas написал(а):
Проблема решилась иначе!
Я вместо того чтобы брать содержимое из скрытого фрэйма в див, поместил этот фрэйм в див и просто загружаю во фрэйме документ и делаю видимым див.
Всё гениальное просто (скромно - )
Я вместо того чтобы брать содержимое из скрытого фрэйма в див, поместил этот фрэйм в див и просто загружаю во фрэйме документ и делаю видимым див.
Всё гениальное просто (скромно - )
_____________