JavaScript datei in javascript laden?

and-ri

Lieutenant
Registriert
Nov. 2008
Beiträge
739
Hallo Freunde,
Ich wuerde gerne eine automatische sitemap mit javascript schreiben.
Habe dazu leider wenig gefunden wie man es selber realisieren kann.
Daher hab ich einfach mal mit Grundlegendem angefangen.
Also zu erst probiert wie man links aus einem Text oder einer
Html Seite rausbekommt und so, weil ich etwas neu bei javascript bin.

Nun bin ich an einem punkt wo ich die links gern verfolgen würde, also
die dahinter liegende seite nachladen möchte (in eine variable, also text oder document Object).

Ich habe das bisher über einem umweg gemacht:
Seite in einem IFrame laden, prozedure ausfürhen.

hier mal der code:
HTML:
var AllLinks;

function createSitemap(){

	var x1=document.getElementById("f1").contentDocument;
	//document.getElementById("x2").innerHTML=x1.body.innerHTML;
	
	//array für die komplette struktur
	AllLinks = new Array( 0 );
	AllLinks.push(x1.URL);
	
	for(var i=0 ;i < x1.links.length-4;i++){
		getSubPage(x1.links[i]);
			
	}
	
	for(var i=0 ;i < AllLinks.length;i++){
		document.getElementById("Sitemap").innerHTML+="<br>"+AllLinks[i];
	}

}


	
function getSubPage( address){
	

	document.getElementById("f1").src=address;
	//document.getElementById("f1").contentDocument.location.href=address;
	//document.getElementById("f1").contentDocument.location.reload();


	AllLinks.push(document.getElementById("f1").contentDocument.URL);



	

	}

	

</script>


<body>






<iframe src="index.html" id="f1"style="width:300px; height:500px;"></iframe>
<textarea Id=x2 style="width:500px; height:500px;">Dieses script läuft nur mit internen seiten.</textarea>



<input type="button" onclick="createSitemap()" value="Get text" />



<div ID="Sitemap">

Hier soll was stehen



</div>

Dieser weg würde auch funktionieren, wenn, ja wenn nicht der iframe die seite erst neu läde, wenn das script beendet ist.
Also habe ich, solange das script läuft, die alte seite, was mir nun nichts nützt.

Kann man in javascript nicht einfach eine neue seite anfordern und sie in eine variable legen?
oder kann man das laden des iframes nicht einfach schon im script realisieren?
location.reload hat leider nix gebracht.

Danke
 
Zuletzt bearbeitet:
Da JavaScript Clientseitig läuft, ist es recht sinnfrei damit eine Sitemap zu erstellen, die ja auf dem Server liegen muss. Imho ist sowas sicherheitstechnisch auch garnicht zugelassen. Würde da an deiner Stelle mit PHP arbeiten, da hast du jede Möglichkeit, die du dafür brauchst.

EDIT
Um den ganzen Content einer angeforderten Seite bequem als Variable zu bekommen, solltest du dir mal Protoype und Ajax.Request anschauen. Damit geht das recht bequem. Ich habe allerdings die Erfahrung gemacht, das grade Firefox nach einer Weile sehr damit zu kämpfen hat, so große Objekte zu verwalten.
 
Die Schlagwörter dürften dir weiter helfen:

xml http request

einfach mal bei wikipedia nachschauen. Du brauchst dafür aber auch keine IFrames
 
naja, ich kann leider serverseitig nur mit ASP arbeiten, und da weiß ich gar nicht wie weit ich das überhaupt kan, rechte mäßig.
mir bleibt momentan leider nur JS.

xml http request habe ich auch schon mal gelesen, danke.. gibt es dazu irgendwo eine gute reference?
läuft das dann client seitig ab?
 
Zurück
Oben