Im Grunde haben mir hier ALLE Antworten ein Stückchen weitergeholfen. Die von Linuchs war in Kombination mit einige spätabendliche Lektionen in einem Crashkurs "Javascript" am aufschlussreichsten. Ich verstehe allmählich was ich tue ... ;)
Linuchs' Variante funktioniert ganz prima, für mich genügt die Abfrage des headers, auf die Martin verwiesen hat. Da eine komplette Lösung - für mich - noch nirgends auffindbar war und ich vielleicht bei jemand anderem den Frustfaktor senken kann, hier mal beide Varianten komplett mit Skripting in einer HTML-Datei:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>XMLHttpRequest mit Rückmeldung - Test - Nur Header</title>
<script type="text/javascript">
<!--
function ZeigeVerberge( )
{
// http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp
// The onreadystatechange event is triggered every time the readyState changes.
if ( request.readyState == 4 && request.status == 200 )
{
alert ('JA. Datei vorhanden! Hier dann der Code zum Einblenden der Elemente');
}
else {
alert ('NEIN. Datei nicht vorhanden! Sofern nicht Anfangs global ausgeblendet hier Code zum Ausblenden der Elemente');
}
}
function checkdatei(x) {
request = new XMLHttpRequest(); // Definition des Request
url = ('temp/' + x); // Hier wird zusammengesetzt, was abgefragt werden soll, z. B. 'temp/test.pdf'
request.open('head',url, true); // Request öffnen ... url ist eine Variable. Bei direktem Aufruf statt dessen 'http://domain.de/datei,xyz' einschließlich Anführungszeichen
request.send(null); // Request senden
request.onreadystatechange = ZeigeVerberge; // Request auswerten
}
//-->
</script>
</head>
<body onLoad="checkdatei('test.pdf')">
<div id="Inhalt">Test XMLHttpRequest: Gibt alert Platzhalter aus, je nachdem, ob eine Datei da ist oder nicht:<br>
Falls nein: 2 mal NEIN<br>
Falls ja: 1 mal NEIN, nach laden des headers dann 1 mal JA.</div>
</body>
</html>
ODER
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>XMLHttpRequest mit Rückmeldung - Test</title>
<script type="text/javascript">
<!--
function zeigeHelptext( )
{
// http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp
// The onreadystatechange event is triggered every time the readyState changes.
if ( request.readyState == 4 && request.status == 200 )
{
alert ('Hier dann der Code zum Einblenden der Elemente');
document.getElementById( "helptext" ).innerHTML = request.responseText;
document.getElementById( "helptext" ).style.display = "block";
}
else {
alert ('Sofern nicht Anfangs global ausgeblendet hier Code zum Ausblenden der Elemente');
}
}
function checkdatei() {
request = new XMLHttpRequest();
request.open('post','http://www.domain.de/temp/test.pdf', true); // Request öffnen
request.send(null); // Request senden
request.onreadystatechange = zeigeHelptext; // Request auswerten
}
//-->
</script>
</head>
<body onLoad="checkdatei()">
<div id="helptext">Antwort des Scripts bzw. Inhalt der Datei hier</div>
</body>
</html>
Der Code dürfte in Verbindung mit den mir zuvor von den anderen Usern gegebenen Erklärungen hoffentlich selbtserklärend sein. Von mir nur der Hinweis, dass sowohl ein vollständiger URL (http://www.domain/temp/test.pdf wie im zweiten Beispiel) als auch ein relativer (erstes Beispiel) funktioniert. Außerdem noch die Warnung, dass das Ergebnis des Requests offensichtlich im Browser-Cache vorhanden ist.
Soweit, so gut. Die Sache hat allerdings den Haken, dass sie in meinem Authoring-Umfeld NICHT mehr funktioniert. :( Offensichtlich kann dort Code nur chronologisch runtergenudelt werden. Aber ich bin immerhin ein Stück weiter :) ... und dieses Problem gehört dann vermutlich definitiv nicht mehr in dieses Forum.