Thread View: pl.comp.lang.javascript
3 messages
3 total messages
Started by Hesus
Thu, 28 Oct 2010 11:18
Wywołanie funkcji Javascript po wypełnieniu DIVa przez Ajaxa
Author: Hesus
Date: Thu, 28 Oct 2010 11:18
Date: Thu, 28 Oct 2010 11:18
118 lines
3108 bytes
3108 bytes
Witajcie.
Kiedyś używałem ramek i wszystko było fajnie ale teraz przesiadłem
się na AJAXa i zaczęły sięschodki.
Mam na stronie dwa DIVy, MENU i TREŚĆ i klikając w przyciski menu
chcę
zmieniać treść bez przeładowywania strony. ale niestety gdy w treści
są jakeiś funkcje JAVA nie wywołują się one. Poratujcie jak to ugryźć
Problem rozwiązał by np DIV OnLoad ale nie ma czegoś takeigo :/
poniżej kod:
INDEX.PHP :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/
TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>test</title>
<script language="JavaScript">
<!--
var xmlHttp
function klikniety(str)
{
document.getElementById("tresc").innerHTML="Wczytuje dane ..."
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Przeglądarka nie obsługuje HTTP Request")
return
}
var url=str
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("tresc").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
//-->
</script>
</head>
<body>
<div id="menu">
<input type="Button" onclick="klikniety('strona1.php')"
value="strona1">
<br><BR>
</div>
<div id="tresc">
a kuku
</div>
</body>
</html>
STRONA1.PHP:
to jest jakiś tam tekst a pod nim funkcja alert
<br><br>
<script language="JavaScript">
alert("Aaaaaaa");
</script>
<br><br>
I znowu napis.
Re: Wywołanie funkcji Javascript po wypełnieniu DIVa przez Ajaxa
Author: emil
Date: Fri, 29 Oct 2010 00:34
Date: Fri, 29 Oct 2010 00:34
25 lines
1647 bytes
1647 bytes
Tak na szybko i z głowy:
> function stateChanged()
> {
> if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
> {
var el =
document.getElementById("tresc").innerHTML=xmlHttp.responseText;
var d = document
for(var i=0;i<d.length;i++) {
var n = document.createElement('script');
n.type = "text/javascript";
n.text = d[i].text;
el.appendChild(n);
> }
Ewentualnie można spróbować zrobić eval(d[i].text) tylko, że wtedy
zmienne globalne zdefiniowane w <script> będą widoczne tylko dla kodu
wewnątrz danego tagu.
Miej jednak świadomość, że takie podejście do wczytywania treści jest złe.
Pozdrawiam
emil
Re: Wywołanie funkcji Javascript po wypełnieniu DIVa przez Ajaxa
Author: Witold Szczerba
Date: Fri, 29 Oct 2010 20:21
Date: Fri, 29 Oct 2010 20:21
21 lines
2248 bytes
2248 bytes
On Oct 28, 1:18 pm, Hesus <tomas...@op.pl> wrote: > Witajcie. > > Kiedyś używałem ramek i wszystko było fajnie ale teraz przesiadłem > się na AJAXa i zaczęły sięschodki. > Mam na stronie dwa DIVy, MENU i TREŚĆ i klikając w przyciski menu > chcę > zmieniać treść bez przeładowywania strony. ale niestety gdy w treści > są jakeiś funkcje JAVA nie wywołują się one. Poratujcie jak to ugryźć Pytanie kontrolne: do czego jest Ci to potrzebne? Samo wczytanie treści z użyciem AJAXa jest uruchamiane przez funkcję JavaScript, tam możesz przecież wywołać cokolwiek tylko zapragniesz po otrzymaniu odpowiedzi z serwera. Przy okazji, jak piszesz w JavaScript - jest taka konwencja, że zwykłe funkcje (tak samo jak zmienne) piszemy z małej litery. Tylko funkcje - konstruktory piszemy z wielkiej. Pozdrawiam, Witold Szczerba
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads