🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#50369
Author: Hesus
Date: Thu, 28 Oct 2010 11:18
118 lines
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
#50370
Author: emil
Date: Fri, 29 Oct 2010 00:34
25 lines
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
#50371
Author: Witold Szczerba
Date: Fri, 29 Oct 2010 20:21
21 lines
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