[AJAX] Zaciąganie kolejnych podstron na stronie

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
rider
Posty: 6
Rejestracja: ndz paź 09, 2005 11:21 pm

[AJAX] Zaciąganie kolejnych podstron na stronie

Post autor: rider »

Witam. Mam następujący problem:
Próbuję właśnie połączyć działanie poniższego skryptu, odpowiadającego za zaciąganie kolejnych podstron na stronie (po kliknięciu w link).
-------------------plik index.php-------------------

Kod: Zaznacz cały

<script type="text/javascript">
function readfile(url,id)
 {
  if (document.getElementById) {
   var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  }
  if (x)
  {
   x.onreadystatechange = function()
   {
    if (x.readyState == 4 && x.status == 200)
    {
     el = document.getElementById(id);
     el.innerHTML = x.responseText;
    }
   }
   x.open("GET", url, true);
   x.send(null);
  }
 }
</script>

A już między znacznikami body jest jakiś div, w którym wyświetlają się podstrony.
Jedna z podstron zawiera również poniższy kod, który nie chce współpracować w ten sposób. Natomiast otworzenie pliku php, w którym poniższy kod się znajduje pozwala nam na wyświetlenie zdjęć, które będą się w odpowiedni sposób animowały.
-------------------plik podstrona.php-------------------
Z elementem frameworka dojo, który wyświetla jakąś ilość zdjęć:

Kod: Zaznacz cały

<script type="text/javascript">
	var djConfig = {isDebug: true, debugAtAllCosts: false};
</script>
<script type="text/javascript" src="dojo.js"></script>
<script language="JavaScript" type="text/javascript">
	dojo.require("dojo.widget.FisheyeList");
	dojo.hostenv.writeIncludes();
</script>
a następnie:

Kod: Zaznacz cały

<div class="outerbar">
<div class="dojo-FisheyeList"
	dojo:itemWidth="50" dojo:itemHeight="50"
	dojo:itemMaxWidth="75" dojo:itemMaxHeight="75"
	dojo:orientation="horizontal"
	dojo:effectUnits="1"
	dojo:itemPadding="10"
	dojo:attachEdge="top"
	dojo:labelEdge="bottom"
	dojo:enableCrappySvgSupport="false">
	<div class="dojo-FisheyeListItem" 
		dojo:iconsrc="images/zdj.jpg">
	</div>
</div></div>
Z tego co zdołałem wydedukować mogę powiedzieć, że najprawdopodobniej nie są wykonywane skrypty javyscript zawarte w zaciąganej podstronie:

Kod: Zaznacz cały

<script type="text/javascript">
	var djConfig = {isDebug: true, debugAtAllCosts: false};
</script>
<script type="text/javascript" src="dojo.js"></script>
<script language="JavaScript" type="text/javascript">
	dojo.require("dojo.widget.FisheyeList");
	dojo.hostenv.writeIncludes();
</script>
Jeżeli miałby ktoś pomysł jak rozwiązać ten problem będę wdzięczny.

EDIT:
www.img.ekk.pl (po kliknięciu w górnym menu w pictures, a następnie wybraniu galerii zdjęć zaciągamy plik zdall.php - jednak skrypty w nim zawarte nie wykonują się).
www.img.ekk.pl/zdall.php (tu widać, że działa - skrypt jest uruchamiany. Zdjęcia nie wyświetlają się ze względu na brak zmiennej określającej folder).

Niestety umieszczenie skryptów w pliku index.php również nie przynosi rezultatów.

Mam nadzieję, że to pomoże w rozwiązaniu problemu.

----po edycji----
Doszedłem do wniosku, że można dodać if'a w przypadku, gdy jest otwierana galeria zdjęć:

Kod: Zaznacz cały

<script type="text/javascript">
function readfile(url,id)
{
 if (document.getElementById) {
  var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
 }
 if (x)
 {
  x.onreadystatechange = function()
  {
   if (x.readyState == 4 && x.status == 200)
   {
    el = document.getElementById(id);
    el.innerHTML = x.responseText;
   }
  }
  x.open("GET", url, true);
  x.send(null);
 }
 if (url=="zdall.php?folder=Jura2") {
  var djConfig = {isDebug: true, debugAtAllCosts: false};
  dojo.require('dojo.widget.FisheyeList');
  dojo.hostenv.writeIncludes();
 }
}
</script>
W tym przypadku kod jest wykonywany podczas ładowania podstrony, więc istnieje szansa, że zostanie on wykonany "we właściwym momencie".
Brakuje tu jeszcze jednego - zaciągania pliku dojo.js.
I tutaj pytanie kolejne. Czy istnieje funkcja, która wewnątrz skryptu javy jest w stanie zainkludować inny plik (tak jak w php include(); )?
ODPOWIEDZ