Ursprungligen inskrivet av adisbladis
Iframes är INTE en bra teknik att använda på moderna sidor...
Har någon färdig klass liggande för att göra sånt:
function createRequestObject() {
var req;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert('Problem creating the XMLHttpRequest object');
}
return req;
}
function handleDivTag(divtag)
{
var divtag;
return divtag;
}
var http = createRequestObject();
var divhandler = new handleDivTag(null);
function browse(act,divtag) {
document.getElementById(divtag).innerHTML='<p>Laddar sidan</p>';
http.open('get', act);
http.onreadystatechange = handleResponse;
divhandler.divtag = divtag;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response) {
document.getElementById(divhandler.divtag).innerHTML = response;
}
}
}
där du anropar funktionen browse() på följande sätt:
browse('./en_undersida.php','div_att_skriva_till');
så om din sida ser ut ungefär såhär:
<html>
<head>
<title> My supercool webpage </title>
<script type='text/javascript>
function createRequestObject() {
var req;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert('Problem creating the XMLHttpRequest object');
}
return req;
}
function handleDivTag(divtag)
{
var divtag;
return divtag;
}
var http = createRequestObject();
var divhandler = new handleDivTag(null);
function browse(act,divtag) {
document.getElementById(divtag).innerHTML='<p>Laddar sidan</p>';
http.open('get', act);
http.onreadystatechange = handleResponse;
divhandler.divtag = divtag;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response) {
document.getElementById(divhandler.divtag).innerHTML = response;
}
}
}
</script>
</head>
<body>
<div id='statisk_div_med_lankar'>
<a href="javascript:browse('./undersida1.php','div_att_skriva_till')">Undersida 1</a>
<a href="javascript:browse('./undersida2.php','div_att_skriva_till')">Undersida 2</a>
</div>
<div id='div_att_skriva_till'>
</div>
</body>
</html>
Så stannar länkarna kvar på sidan medan diven med idn div_att_skriva_till ändras.
Sen kan du självklart ändra raden
document.getElementById(divtag).innerHTML='<p>Laddar sidan</p>';
till någonting annat i stil med
document.getElementById(divtag).innerHTML='<img src="laddningsbild.gif" />';
för att få någon fancy indikering på att den faktiskt laddar sidan