Страница 1 из 1

вопрос по javascript

Добавлено: Ср ноя 02, 2005 12:34
aramis
Есть некая страница c <iframe> а так же есть форма.А фрейм перезагружается каждые 3 секунды.
У меня такой вопрос .как зделать так чтобы с каждой перезагрузкой фрейма в форме на главной странице value увеличивалось на 1. т.е в форме мы видим 1 ,через 3 секунды 2 и т.д
Вариант с cookie не подходит.

Добавлено: Пн ноя 07, 2005 02:43
Otello
aramis писал(а):Есть некая страница c <iframe> а так же есть форма.А фрейм перезагружается каждые 3 секунды.
У меня такой вопрос .как зделать так чтобы с каждой перезагрузкой фрейма в форме на главной странице value увеличивалось на 1. т.е в форме мы видим 1 ,через 3 секунды 2 и т.д
Вариант с cookie не подходит.
Код можете поместить?

обычно в скрипте можно просто держать переменные... но видимо вам это не подходит.. лучше если поместите код перезагрузки фрейма.

Добавлено: Пн ноя 07, 2005 13:09
Ali Baba
aramis,
дайте кусок кода вашего Сэр

Добавлено: Вт ноя 08, 2005 01:46
-Molodka-
aramis писал(а):Есть некая страница c <iframe> а так же есть форма.А фрейм перезагружается каждые 3 секунды
я вообще ничего не понимаю.
Ali Baba, обьясните,plz, хочем знать :shy:

Добавлено: Чт ноя 10, 2005 07:38
aramis
главная страница

Код: Выделить всё

<html>
<head>
	<title>Untitled</title>
	<script type="text/javascript">
<!--
function tor(){

document.fori.t.value = 0;
}
// -->
</script>
</head>
<body>
<iframe src="D:\temp\frame1.htm" name="frame1" id="frame1" width="150" height="140"></iframe>

<form action="" name="fori" id="fori">
<input type="text" name="t" size="4" maxlength="4">
</form>
<script type="text/javascript">
<!--

// -->
</script>
</body>
</html>
а это фрейм

Код: Выделить всё

<html>
<head>
	<title>Untitled</title>
	<meta HTTP-EQUIV=Refresh Content="3; frame1.htm">
<script type="text/javascript">
<!--

//
// -->
</script>
</head>

<body>
<h2>Это фрейм ...</h2>
<form action="" name="form" id="form">
значение+ <input type="text" name="txt" size="4">
</form>
<script type="text/javascript">
<!--

// -->
</script>
</body>
</html>
как видите фрейм перезагружается каждые 3 секунды.
мне нужно зделать что-то вроде счетчика.
на главной в поле стоит 1 ,перезагрузился фрейм стоит 2 и т.д.

Добавлено: Пт ноя 11, 2005 09:34
Стэлла
aramis,я не очень сильнa в программировании, но может лучше сделать счетчик на флешке, ввиде часиков например, и запихнуть во внутрь фрейма.

Добавлено: Пт ноя 11, 2005 10:38
ищейка
Стэлла,
parent.getElementById('id поля').value=1 +parent.getElementById('id поля').value;
вот так должно работать

Добавлено: Пт ноя 11, 2005 12:57
Iulik D

Код: Выделить всё

<html>
<head>
   <title>Untitled</title>
<script type="text/javascript">
function adjustIFrameNumber(id) {
    var myIframe = document.getElementById(id);
    
    if (myIframe) {
        if (myIframe.contentDocument && myIframe.contentDocument.body.offsetHeight) {
            // W3C DOM (and Mozilla) syntax
            myIframe.contentDocument.form.txt.value=parseInt(document.fori.t.value);   
        } else if (myIframe.Document && myIframe.Document.body.scrollHeight) {
            // IE DOM syntax
           myIframe.Document.form.txt.value=parseInt(document.fori.t.value);
        }
    }
}
</script>
</head>
<body onload="adjustIFramenumber('myFrame');">
<iframe id="myFrame" frameborder="1" vspace="1" hspace="1" marginwidth="1" 
marginheight="1" width="20%" src="d.html" scrolling="yes" 
style="overflow:visible"></iframe>
<form action="" name="fori" id="fori">
<input type="text" name="t" size="10" value="1" maxlength="40" onchange="adjustIFrameNumber('myFrame');"/>
</form>
</body>

</html>

Код: Выделить всё

<html>
<head>
   <title>Untitled</title>
<script type="text/javascript">
function Sum() {
	window.setTimeout("Sum()",3000 )
 	document.form.txt.value = parseInt(document.form.txt.value)+1;   
}
</script>
</head>
<body onload="Sum();">
<h2>Это фрейм ...</h2>
<form action="" name="form" id="form">
значение+ <input type="text" name="txt" value="0" size="4">
</form>
</body>
</html>


[off]добавлено спустя 1 минуту:[/off]

работает на всех браузеров

[off]добавлено спустя 27 минут:[/off]

поменяй вот так

Код: Выделить всё

<input type="text" name="t" size="10" value="1" maxlength="40" onchange="adjustIFrameNumber('myFrame');" onkeyup="adjustIFrameNumber('myFrame');"/>

Добавлено: Пт ноя 11, 2005 15:34
Otello
aramis

main page

Код: Выделить всё

<html>
<head>
<title>Untitled</title>

<script type="text/javascript">
 var counter = 0;
</script>

</head>
<body>

<iframe src="frame1.htm" name="frame1" id="frame1" width="150" height="140">
</iframe>

<form action="" name="fori" id="fori">
 <input type="text" name="t" size="4" maxlength="4">
</form>

<script type="text/javascript">
<!--
// -->
</script>
</body>
</html>
frame page

Код: Выделить всё

<html>
<head>
 <title>Untitled</title>
 <meta HTTP-EQUIV=Refresh Content="3; frame1.htm">
<script type="text/javascript">
<!--
function refreshCounter()
 { 
   parent.document.fori.t.value = parent.counter++;
 }
// -->
</script>
</head>

<body onload="refreshCounter()">
<h2>This is a frame ...</h2>
<form action="" name="myForm" id="myForm">
Refresh Value+ <input type="text" name="txt" size="4">
</form>
<script type="text/javascript">
<!--

// -->
</script>
</body>
</html>
попробуйте код выше?

Добавлено: Пт ноя 11, 2005 15:38
Iulik D
Otello,

так у него результат не в фрайме должен быть?

Добавлено: Пт ноя 11, 2005 16:47
glukoza
с небольшой поправкой, вроде работает:



if(parent.document.forms[0].t.value == null || parent.document.forms[0].t.value=='')
parent.document.forms[0].t.value=1;
else
parent.document.forms[0].t.value = parseInt(parent.document.forms[0].t.value)+1;




Вот код... только я названия файлов покалeчила немного:



Перент:

Код: Выделить всё

<html>
<head>
 <title>Untitled</title>
 <script type="text/javascript">
<!--
function tor(){

document.fori.t.value = 0;
}
// -->
</script>
</head>
<body>

<iframe src="frame1.html" name="frame1" id="frame1" width="150" height="140"></iframe>

<form action="" name="fori" id="fori">
<input type="text" name="t" size="4" maxlength="4">
</form>
<script type="text/javascript">

<!--

// -->
</script>
</body>
</html>
Фрейм:

Код: Выделить всё

<html>
<head>
 <title>Untitled</title>
 <meta HTTP-EQUIV=Refresh Content="3; frame1.html">
<script type="text/javascript">
<!--

//
// -->
</script>
</head>

<body>
<h2>Bla bla</h2>
<form action="" name="form" id="form">
counter+ <input type="text" name="txt" size="4">
</form>
<script type="text/javascript">
if(parent.document.forms[0].t.value == null || parent.document.forms[0].t.value=='')
parent.document.forms[0].t.value=1;
else
parent.document.forms[0].t.value = parseInt(parent.document.forms[0].t.value)+1;
<!--

// -->
</script>
</body>
</html>


[off]добавлено спустя 1 минуту:[/off]

Щас задумалась... может вы хотели внутреннее окошко тоже меняться, тогда:


if(parent.document.forms[0].t.value == null || parent.document.forms[0].t.value=='')
parent.document.forms[0].t.value=1;
else
parent.document.forms[0].t.value = parseInt(parent.document.forms[0].t.value)+1;

document.forms[0].txt.value = parent.document.forms[0].t.value;

[off]добавлено спустя 1 минуту:[/off]

Ой шас увидела пост Otello

тоже работает...

Добавлено: Пт ноя 11, 2005 18:33
aramis
всё работает!!! Iulik D мне нужно что-бы не просто через определённый промежуток
а именно при перезагрузке. [off]при щелчке на reload[/off] увеличивался счётчик на главной странице. Я сделал так

Код: Выделить всё

function Sum() { 
   //window.setTimeout("Sum()",3000 ) 
    
	parent.document.fori.t.value=parseInt(parent.document.fori.t.value)+1;   
} 
Я раньше пытался делать так

Код: Выделить всё

function myFun() { 
 
	parent.document.fori.t.value+=1;   
} 
В итоге получалось на главной 11 потом 111 и т.д при каждой перезагрузке прибавлялась единичка но не как число а как строка

Otello
твой вариант тоже работает.

Добавлено: Сб ноя 12, 2005 12:28
Iulik D
aramis,

Нужно было сразу написать что только при загружке :)... А мы думали через 3 сеkунды... кстати, если заметил, у мну в коде, в нижнии текст бокс можно написать цыфру, а в ифрэйме будет +1, а потом через каждые 3 сек. будет 1 суммироватса