var images = document.getElementsByTagName("img");
for(var i=0,l=images.length;i<l;i++) {
var image = images[i];
// Get src with image.src and do whatever you want
}
Det jag experimenterar med är om det är möjligt att hämta någon annans sida genom att skicka in en url och sedan presentera enbart bilderna på den sidan på ett intressant sätt. Ungefär som google gör med sin bildsökning.
Dilemmat är ju således att jag inte har tillgång till källkoden på sidan och kan därmed inte namnge bilderna på ett speciellt sätt.
Vad menar du med att namnge bilderna på ett speciellt sätt? Javascript kommer bara åt vad som finns på den aktuella sidan, hämta ut alla IMG element och loopar ut dom, om du hämtar bilder från en annan sida (screen scraping) så få du fortfararande ut DOM objekt som du kan hämta.
My bad, läste lite slarvigt. Mycket intressant och jag har delvis fått det att fungera.
<div id="divReadyStateOutput" style="border:2px solid green;"> </div>
<div id="divPictureOutputArea" style="border:2px solid yellow;"> </div>
<script>
function funGetXmlHttpObject(getThisPage, myOutputDivId) {
var objXmlHttp = null
try{
objXmlHttp = new XMLHttpRequest();
}catch(e){
try{
objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
try{
objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
alert("error opening XMLHTTP")
}
}
}
//alert("Open page")
objXmlHttp.open("GET", getThisPage, true)
objXmlHttp.send();
// Display readystate
//alert("Readystate = " +objXmlHttp.readyState)
objXmlHttp.onreadystatechange=function(){
document.getElementById("divReadyStateOutput").innerHTML = objXmlHttp.readyState;
if (objXmlHttp.readyState==4 && objXmlHttp.status==200){
}
}
//Output the page in div...
//document.getElementById(myOutputDivId).innerHTML = objXmlHttp.responseText
// Lets find the images...
//alert("Find images")
var varHtml = "";
var varPageString = objXmlHttp.responseText;
var arrImages = document.getElementsByTagName("img");
//alert("Found images = " +arrImages.length);
for (i=0; i<arrImages.length; i++){
varHtml = varHtml + arrImages[i].src +"<br/>"
}
// Display image src in output div...
document.getElementById(myOutputDivId).innerHTML = varHtml;
}
</script>
<script>
//sida A fungerar
funGetXmlHttpObject("http://filmsnutt.se/", "divPictureOutputArea")
//sida B fungerar EJ
funGetXmlHttpObject("http://mattiasnordin.net/", "divPictureOutputArea")
</script>
Ja, därav "ScreenScraping", bör bara vara att köra, dock så bli HTML strukturen fel om du har anropat fler än en sida och få flera <html>-element, doctypes osv.
245 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849