Ik denk dat je effectief naar een AJAX-oplossing zult moeten zoeken.
edit : heb het eventjes uitgewerkt :
maak een aparte pagina voor die afbeelding te testen. Deze pagina moet als header
Content-type: text/xml hebben.
Deze pagina aanvaard 1 parameter, zijnde
url ( je hebt dan bijvoorbeeld
http://www.server.be/afbeeldingchecker.asp?url=http://www.producent.be/foto.gif )
De code van die aparte pagina moet als uitvoer deze xml-syntax zijn :
<afbeelding>
http://www.producent.be/foto.gif
</afbeelding>
Deze pagina moet
http://www.server.be/geenfoto.jpg teruggeven als het mislukt is om
http://www.producent.be/foto.gif te laden.
geenfoto.jpg is hier dan een foto op jouw server die gewoon aantoont dat de foto niet kan geladen worden.
Aan de client-kant gebruik je dan volgende code :
zet dit tussen <head> en </head> :
<script type="text/javascript">
aanvrager = null;
function pasAfbeeldingAan() {
// schrijf antwoorden uit in src van afbeelding
afbeelding = document.getElementById('afbeelding');
knopen = aanvrager.responseXML.getElementsByTagName('afbeelding');
knoopwaarde = knopen[0].childNodes[0].nodeValue;
afbeelding.src = knoopwaarde;
}
function verwerkXMLEvent() {
/* If XMLHR object has finished retrieving the data */
if (aanvrager.readyState == 4) {
if (aanvrager.status == 200)
pasAfbeeldingAan();
else if (requester.status != 0) /* IE returns a status code of 0 on some occasions, so ignore this case */
alert("probleem bij aanvragen " + requester.statusText);
}
return true;
}
function vraagAfbeelding(url) {
/* Check for running connections */
if ( aanvrager != null && aanvrager.readyState != 0 && aanvrager.readyState != 4 )
aanvrager.abort();
try {
aanvrager = new XMLHttpRequest();
} catch(error) {
try {
aanvrager = new ActiveXObject("Microsoft.XMLHTTP");
} catch(error) {
return false;
}
}
aanvrager.onreadystatechange = verwerkXMLEvent;
// pas hier de URL van de aanvraag aan zodat hij wijst naar die pagina die de xml-uitvoer genereert
aanvrager.open("GET", "http://www.server.be/afbeeldingchecker.asp?url="+url );
aanvrager.send(null);
return true;
}
</script>
Op je pagina waar de afbeelding staat zet je dan volgende code :
<img src="http://www.server.be/geenfoto.jpg" id="afbeelding" />
waarbij geenfoto.jpg dan gewoon aanduidt dat er voor dat product geen foto is.
je body-tag moet je dan ook aanpassen naar :
<body onload="vraagAfbeelding(<%=URLVARIABELE%>)">
URLVARIABELE wijst dan naar de foto die je wil testen. ( in mijn voorbeeld is dat dus bijvoorbeeld
http://www.producent.be/foto.jpg )