bild wird nicht geladen
konny
- javascript
hallo,
ich habe folgendes Problem:
bei mousedown auf ein image in einer Tabelle, wird ein neues Bild geladen.
Offline funktioniert das wunderbar. Online verschwindet das Bild auf das geklickt wurde, es ist nur noch der Tabellenhintergrund zu sehen. Es wird nicht das Defaultikon geladen.
Wenn ich nun mit der rechten Maustaste "Bild anzeigen" ausführe, wird das Bild angezeigt.
Wenn ich die Maus eine Sekunde länger gedrückt halte, wird das Bild angezeigt.
Wenn ich in den javaScript Code ein alert einfüge, dann wird das Bild auch angezeigt!!!
Ich habe im Archiv schon mehrere Threads zu diesem Thema gefunden, aber es wird immer nur das Phänomen geschildert. Es gab bisher noch keine Lösung dazu!!! Gibt es keinen, der dieses Problem mal gelöst hat??? Ich teste momentan nur auf ie5.
hier ist der gekürzte Code:
function loadPic(bildnr,imgPos){
var pic;
var pic_h;
pic=parent.content.document.images[imgPos].src;
pos = pic.indexOf(".jpg");
pic_h=pic.substr(0,pos);
pic_h=pic_h.concat("_h.jpg");
parent.content.document.images[imgPos].src=pic_h;
}
wäre prima, wenn mir jemand helfen könnte...
gruss,konny
du solltest die Bilder beim aufrufen der Seite schon laden, mittels
zb.
function preload() {
tmp=new Image();
tmp.src="name-des-normalen-bildes_h.jpg";
}
und diese function bei <body onload="preload()"> aufrufen.
bei mehreren highlights kannst du die ja in ein array packen.
YNWA
hallo YNWA,
habe deinen Vorschlag befolgt. Leider hilft das auch nichts...
aber trotzdem danke...
konny
hallo Vimes,
habe deinen Vorschlag befolgt. Leider hilft das auch nichts...
aber trotzdem danke...
konny
irgendwo Quelltext zu finden?
function preload() {
tempImg=new Image;
bilder=new Array("../img/HChristel.jpg","../img/RChristel.jpg","../img/Roser.jpg");
for(i = 0; i < bilder.length; i++){
alert(bilder[i]);
tempImg.src=bilder[i];
}
}
function preload() {
tempImg=new Image;
hier zwingend () also new Image();
bilder=new Array("../img/HChristel.jpg","../img/RChristel.jpg","../img/Roser.jpg");
for(i = 0; i < bilder.length; i++){
alert(bilder[i]);
tempImg.src=bilder[i];
}
}
besser wär die bilder in ein Array zu packen und nicht nur die Namen, also
!global definieren!
namen = new Array("../img/HChristel.jpg","../img/RChristel.jpg","../img/Roser.jpg");
! Wichtig, sind das die Namen der "hervorgehobenen" Bilder? die solltest du nämlich "vorladen", also evtnl. eher
("../img/HChristel_h.jpg","../img/RChristel_h.jpg","../img/Roser_h.jpg");
bilder = new Array(namen.length);
function preload() {
for (i=0;i<namen.length;i++) {
bilder[i]=new Image();
bilder[i].src=namen[i];
}
}
beim Wechseln kannst du dann einfach die Nummer des Bildes verwenden
und dann
document.blabla.src = bilder[i].src;
SUPER es funktioniert!
da hab ich ja ganz schön schrott produziert...
VIELEN DANK für deine Korrekturen!!! Das war echt ein super netter Service!
konny