odświeżanie div ze skryptem

0

Mam taki problem.
Mam funkcję odświezania div, do którego wrzucam stronę z tabelką.
I wszystko chodzi dobrze, dopóki w tabelce nie mam skryptu js.
Jak to obejść, żeby w skrypcie wywoływać skrypt.
poniżej kody

<html>
<head>
<title>Example: Ajax.PeriodicalUpdater</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="prototype.js" type="text/javascript"></script>
<LINK REL="stylesheet" HREF="tabelka.css" TYPE="text/css"> 
</head>
<body>

<script>
	function getNumber() {
		//var url = 'http://www.java2go.net/php/ajax/sample_number.php';
		var url = 'tabelka_awarie.js';
		var pars = 'someParameter=ABC';
		
		var myAjax = new Ajax.PeriodicalUpdater(
			'placeholder', 
			url, 
			{
				method: 'get', 
				parameters: pars,
				frequency: 2
			});
	}
</script>

<input type="button" value="Get Number" onclick="getNumber()" />

<p><div id="placeholder"></div></p>

</body>
</html>
<TABLE CLASS="TAB">
<CAPTION CLASS="TAB">OK</CAPTION>
  <THEAD >
<TR CLASS="TAB">
<TH CLASS="TAB">Symbol</TH>
<TH CLASS="TAB">Wartość</TH>
<TH CLASS="TAB">Opis</TH>
</TR>
</THEAD >
<TBODY>
<TR CLASS="TAB">
<TD CLASS="TAB">2T</TD>
<TD CLASS="TAB">58</TD>
<TD CLASS="TAB">op1
</TD>
</TR>
</TBODY>
</TABLE>

i to działa, ale jeżeli wstawię jakiś skrypt
<script>var a=20; document.write(a)</script>
to nie działa

0
<script>
        function getNumber() {
                //var url = 'http://www.java2go.net/php/ajax/sample_number.php';
                var url = 'tabelka_awarie.js';
                var pars = 'someParameter=ABC';
               
                var myAjax = new Ajax.PeriodicalUpdater(
                        'placeholder',
                        url,
                        {
                                method: 'get',
                                parameters: pars,
                                evalJS: true, //tutaj zmiana!
                                frequency: 2
                        });
        }
</script>

Podmień i sprawdź. I pisz w jakim frameworku pracujesz (Prototype)

0

Podmień i sprawdź. I pisz w jakim frameworku pracujesz (Prototype)

nie działa
tak, to Prototype
a może jest inny sposób obejścia tego.
Generalnie muszę pobierać i wyświetlać dane, które otrzymuję dzięki javascript.
Muszę więc zadeklarować zmienną w javascript, a następnie ją odświeżać, a czasami nie tylko odświeżać, ale i napisać skrypt, który coś robi w zależności od tego jak się zmieni, czyli:
dane.js

var zmienna = <tutaj kod do mojego webservera, który zwraca mi wartość zmiennej>;

plik2.html
odnoszę się do plik.js, pobieram zmienną i opisuję zależność, czyli

<head>
<SCRIPT LANGUAGE="JavaScript" SRC="IP://dane.js"></SCRIPT>
</head>

sekcji body:

<TD CLASS="TAB"><script>
if(zmienna==100) {document.write("Blad".blink().fontcolor("red"));}
else {document.write("OK");}</script></TD>

nie wiem jak do tego podejść, żeby nie odświeżać całej strony

0

<ort>spróbUj </ort>tak:

<script>
        function getNumber() {
                //var url = 'http://www.java2go.net/php/ajax/sample_number.php';
                var url = 'tabelka_awarie.js';
                var pars = 'someParameter=ABC';
               
                var myAjax = new Ajax.PeriodicalUpdater(
                        'placeholder',
                        url,
                        {
                                method: 'get',
                                parameters: pars,
                                evalJS: true, //tutaj zmiana!
                                evalScripts: true, //tutaj 2 zmiana
                                frequency: 2
                        });
        }
</script>

Teraz powinno hulać.
Jak nie, tu użyj http://www.prototypejs.org/api/string/evalScripts z pobranego tekstu za pomoca javascript

0
bordeux napisał(a)

Teraz powinno hulać.
Jak nie, tu użyj http://www.prototypejs.org/api/string/evalScripts z pobranego tekstu za pomoca javascript

nie hula
wziąłem prosty przykład

<html>
<head>
<title>Prototype examples</title>
<script src="prototype.js" type="text/javascript"></script>
<script>
function showResult(){
  var str ='<script>2 + 2</script>';
  alert( str.evalScripts());
}
</script>
</head>
<body>
  <input type="button" value="Result" onclick="showResult();"/>
</body>
</html>

i też nie działa
mam prototype 1.6.1

gdy wywołuję

''<script>alert("hello world!")</script>'.evalScripts();

to działa, ale jak chcę wywołać najprostsze <script>2 + 2</script>'.evalScripts();
to już nie działa

0
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Prototype examples</title>

<script src=
"http://www.prototypejs.org/assets/2008/9/29/prototype-1.6.0.3.js"
type="text/javascript">
</script>
<script type="text/javascript">
function showResult(){
  var str ='<script>2 + 2<\/script>';
  alert( str.evalScripts());
}
</script>
</head>
<body>
<form><input type="button" value="Result" onclick=
"showResult();"></form>
</body>
</html>

Sciagłeś przykład z http://www.tutorialspoint.com/prototype/prototype_string_evalscripts.htm , który jest zły. Autor zapomniał że </script> należy zamienić na </script> .

0
bordeux napisał(a)

Sciagłeś przykład z http://www.tutorialspoint.com/prototype/prototype_string_evalscripts.htm , który jest zły. Autor zapomniał że </script> należy zamienić na </script> .

no teraz ten skrypt działa, ale skąd ten znaczek "/ się wziął, bo w dokumentacji w linku który podałeś go nie ma
jeżeli zamiast 2+2 wstawię

<html>
<head>
<title>Prototype examples</title>

<script src="prototype.js" type="text/javascript">
</script>
<script type="text/javascript">
function showResult(){
  var str ='<script>var A_1_10THE2T=0;
if(A_1_10THE2T==100) {document.write("Awaria".blink().fontcolor("red"));}
else {document.write("OK");}<\/script>'; //zmiana
  alert( str.evalScripts());
}
</script>
</head>
<body>
<form><input type="button" value="Result" onclick=
"showResult();"></form>
</body>
</html>

to nie działa
przy zapisie </script> też nie działa
może jakaś inna biblioteka jest, która sobie z tym radzi, albo coś robię źle, tylko nie wiem co.

0

Zanim zaczniesz się bawić w JS, to zainstaluj podstawowe narzędzia.

  1. ZAINSTALUJ jakiś edytor z kolorowaniem składni. Przykładem może być NotePad++
    user image
    Wizualnie widzisz, gdzie jest błąd.
    W JS nie można dać nowej lini w stringu, jak ty to robiłeś. Wartość typu string się wpisuje w jednej linii.
//ŹLE
var s ='Pierwsza linia
druga linia
trzecia linia';

//DOBRZE
var s ='Pierwsza linia'
+'druga linia'
+'trzecia linia';
  1. Zainstaluj firegbuga!
    user image
    Pokaże ci błędy. 1poważny błąd = zatrzymanie całego js na stronie.

  2. Przeczytaj koniecznie:
    http://webmade.org/porady/laczenie-stringow-js.php

0
bordeux napisał(a)
  1. Przeczytaj koniecznie:
    http://webmade.org/porady/laczenie-stringow-js.php

dzięki za dokształcenie
a jak to teraz odnieść do tego kodu, bo tutaj url jest zadeklarowany jako string, więc wszystko co wczytuje powinien jako string traktować.

<script>
        function getNumber() {
                //var url = 'http://www.java2go.net/php/ajax/sample_number.php';
                var url = 'tabelka_awarie.js';
                var pars = 'someParameter=ABC';
               
                var myAjax = new Ajax.PeriodicalUpdater(
                        'placeholder',
                        url,
                        {
                                method: 'get',
                                parameters: pars,
                                evalJS: true, //tutaj zmiana!
                                evalScripts: true, //tutaj 2 zmiana
                                frequency: 2
                        });
        }
</script>
</url>

1 użytkowników online, w tym zalogowanych: 0, gości: 1