Cytat
Teraz chcialbym z zewnetrznej strony. Powiedzmy ze strony glownej nak torej jest link "blabla" zeby ten link mnie odniosl do tej funkcji powyzej na podstronie "pomoc.html"
Przeczytałem chyba z dwadzieścia razy powyższy tekst i chyba skumałem o co ci chodzi.
Przykładowo.
Główny plik:
menu
<li><a href="" onclick="return getData('main-content', 'glowna.html', '');">glowna
</a></li> <li><a href="" onclick="return getData('main-content', 'o-nas.html', '');">o nas
</a></li> <li><a href="" onclick="return getData('main-content', 'pomoc.html', 'pomoc1');">pomoc
</a></li> <li><a href="" onclick="return getData('main-content', 'pomoc.html', 'pomoc2');">pomoc
> pomoc2
</a></li>
Każdy plik html w wywołaniu funkcji getData ma jakąś treść nas interesuje tylko pomoc.html:
Treść "pomoc".
<a href="" onclick="return getData('subpage-content', 'pomoc1.html', '');">pomoc1
</a> |
<a href="" onclick="return getData('subpage-content', 'pomoc2.html', '');">pomoc2
</a> <div id="subpage-content">
I poprostu dodaje argument do funkcji pobierającej stronę.
var xhr = false;
function getXhr() {
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest ();
}else if (window.AtiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getData(dest, url, subpage) {
getXhr();
var el = document.getElementById(dest);
if(xhr) {
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 ) {
if (xhr.status == 200) {
el.innerHTML = xhr.responseText;
if(subpage.length > 0) {
loadSubpage(subpage);
}
}
else {
el.innerHTML = 'Nie uzyskano danych';
}
}
else {
el.innerHTML = "Loading...";
}
}
xhr.open("GET", url, true);
xhr.send(null);
}
return false;
}
function loadSubpage(subpage){
subpage = subpage + '.html';
getData('subpage-content', subpage, '');
}
Nie jestem specem od js, więc może da się to zrobić ładniej. W każdym razie powyższy kod działa na FF i Operze (IE nie mam pod ręką).