Hallo Forum,
ich habe mir mit meinen (wenigen!) Java-Kentnissen und verschiedenen Quelltexten eine dynamische Seite für die Erzeugung von Mitgliederdetails eines Vereins geschrieben um bei einer Layoutänderung die Seiten schneller anpassen zu können. Im Prinzip eine Minidatenbank die immer auf die gleiche Seite zugreifen soll. Eine Serverseitige Sprache kann ich leider nicht verwenden, da ich die HP auf offline auf CD funktionsfähig haben möchte.
Die besagte Seite ist unter:
http://www.bsg-olfen.de/web/mitglieder.htm?1
online.
Im Firefox, bzw. Mozilla funktioniert sie Seite so wie ich will. Die Bilder sollen passend zu den Namen geladen werden. Falls noch kein Bild vorhanden (auf dem Server) ist soll die Seite stattdessen das Bild "leer.jpg" anzeigen.
In der Fkt. setdata () habe ich versucht anhand der Breite des Bildes (width==true --> Bild vorhanden) entweder auf das Bild der passenden ID - oder wenn nicht vorhanden - auf das "leer.jpg" (Array 0 --> bildervz + Daten[0]["m_bild"] +".jpg") zu verzweigen.
Im Firefox funktioniert das toll, nur im IE nicht. Der IE zeigt grundsätzlich das leere Bild - und zeigt die vorhandenen Bilder erst nach aktualisierung der Seite an. Der Eintrag wo kein Bild vorhanden ist (id = 3) läd nach aktualisierung dann nicht das leer.jpg - sondern gar keins :-(
Hat jemand eine Idee wie ich das hinbekommen könnte?
kann man da eventuell ein timeout mit einbauen das nur das Bild nochmal aktualisiert wird wenn der IE alles geladen hat?
Und warum zeigt der IE beim dritten Bild (id=3) nach aktualisierung nicht das leer.jpg an?
Oder ist mein Ansatz komplett Falsch?
Hilfäääää!
Gruß Guido
Hier der Quelltext:
<script language="JavaScript">
//Array fuer Datencontainer definieren
var Daten = new Array();
//Daten in das Array schreiben
function addData (m_name,m_bild,funktion,eintritt,tel,fax,mail,web,weiteres)
{
Daten[Daten.length] = new Object();
Daten[Daten.length - 1]["m_name"] = m_name;
Daten[Daten.length - 1]["m_bild"] = m_bild;
Daten[Daten.length - 1]["funktion"] = funktion;
Daten[Daten.length - 1]["eintritt"] = eintritt;
Daten[Daten.length - 1]["tel"] = tel;
Daten[Daten.length - 1]["fax"] = fax;
Daten[Daten.length - 1]["mail"] = mail;
Daten[Daten.length - 1]["web"] = web;
Daten[Daten.length - 1]["weiteres"] = weiteres;
}
//Endung hinter der URL abc.htm?xxx
var anhang;
//Anhang von der URL trennen
function extAnhang()
{
var URLInhalt = location.href;
var ArrayVariable = URLInhalt.split("?");
anhang = unescape(ArrayVariable[1]);
//Anhang in eine IntagerZahl umwandeln
id = parseInt(anhang);
//Prüfe ob Zahl vorhanden ansonsten setze Zahl auf NULL
if (!id) id = 1;
}
//Funktion ausführen
extAnhang();
//Setze Bilderverzeichnis
var bildervz = "images/mitglieder/";
//Datencontainer füttern
addData ("m_name","leer","funktion","eintritt","tel","fax","mail","web","weiteres");
addData ("Albert Böcker","albertboecker","1. Vorsitzender","1988","02595 838","","albert_boecker at yahoo dot de","http://www.bsg-olfen.de","Thronoffizier");
addData ("Christoph Krursel","christophkrursel","2. Vorsitzender","1990","","","","http://www.bsg-olfen.de","");
addData ("Josef Kaltwasser","josefkaltwasser","1. Geschäftsführer","1990","","","","http://www.bsg-olfen.de","");
addData ("Beate Hatebur","beatehatebur","2.Geschäftsführerin","1990","","","","http://www.bsg-olfen.de","Abteilungsleiterin der Damenabteilung");
addData ("Josef Hatebur","josefhatebur","1. Kassierer","1977","02595 3564","","","http://www.bsg-olfen.de","");
addData ("Everhard Maikoetter","everhardmaikoetter","2. Kassierer","1990","02595 98419","","","http://www.bsg-olfen.de","");
//addData ("Guido Schlüter","guidoschlueter","Webmaster","1990","02595 972818","02595 972819","webmnaster@bsg-olfen.de","http://www.xodiug.de","");
//Anzahl der Einträge bestimmen
function anz ()
{
var anz = 0;
for (i = 0; i < Daten.length; i++)
anz++;
return anz-1;
}
//Setze Array auf id=0 wenn Anzahl überschritten wird
if (id > anz()) id = 1;
//Lade Bild vorab, wenn breite = 0 ist das Bild nicht vorhanden
//und wird in der setdata() durch das Bild 0 ersetzt
var pic = new Image();
pic.src = bildervz + Daten[id]["m_bild"] + ".jpg?"+ Math.random();
//Daten für späteren Gebrauch definieren
function setdata (){
document.getElementById ("m_name").firstChild.data = Daten[id]["m_name"];
//Entscheidung ob Bild vorhanden ist oder nicht
if(!pic.width == true)
{
document.getElementById ( "m_bild" ).src = bildervz + Daten[0]["m_bild"] +".jpg";
}
else {
document.getElementById ( "m_bild" ).src = bildervz + Daten[id]["m_bild"] +".jpg";
}
//Restliche Daten definieren
document.getElementById ("funktion").firstChild.data = Daten[id]["funktion"];
document.getElementById ("eintritt").firstChild.data = Daten[id]["eintritt"];
document.getElementById ("tel").firstChild.data = Daten[id]["tel"];
document.getElementById ("fax").firstChild.data = Daten[id]["fax"];
document.getElementById ("mail").firstChild.data = Daten[id]["mail"];
document.getElementById ("web").firstChild.data = Daten[id]["web"];
document.getElementById ("weiteres").firstChild.data = Daten[id]["weiteres"];
}
function weiter(){
id += 1;
self.location.href = "mitglieder.htm?" + id;
}
</script>
<body onload="setdata ()">