bilder - javascript
pete
- javascript
0 Struppi0 pete
hi, http://de.selfhtml.org/javascript/objekte/images.htm wird davon gesprochen, dass bilder im <img>-tag angesprochen werden. wie sieht es aber mit bildern aus, welche zbsp. als tabellenhintergrund eingesetzt werden? kann man diese mit javascript zbsp. darauf prüfen, ob sie vollständig geladen wurden?
hi, http://de.selfhtml.org/javascript/objekte/images.htm wird davon gesprochen, dass bilder im <img>-tag angesprochen werden. wie sieht es aber mit bildern aus, welche zbsp. als tabellenhintergrund eingesetzt werden? kann man diese mit javascript zbsp. darauf prüfen, ob sie vollständig geladen wurden?
nein.
Struppi.
hi, http://de.selfhtml.org/javascript/objekte/images.htm wird davon gesprochen, dass bilder im <img>-tag angesprochen werden. wie sieht es aber mit bildern aus, welche zbsp. als tabellenhintergrund eingesetzt werden? kann man diese mit javascript zbsp. darauf prüfen, ob sie vollständig geladen wurden?
nein.
Struppi.
ok danke
wäre es dann möglich, irgendwie abzufragen ob es beim laden der html-seite probleme gab, und jenachdem die ganze seite neu zu laden? zbsp onerror="location.reload();" o.ä.?
Pete
Lieber pete,
ich hätte da eine Idee, um um das Problem herum zu kommen.
Du holst Dir in Javascript die URL des zu prüfenden Hintergrundbildes, definierst ein new Image() mit ebendieser URL und prüfst für dieses Bild, ob es erfolgreich geladen wurde, bzw. ob beim Laden ein Fehler auftrat. Der Browser wird sowohl Dein neues Bild, als auch das Hintergrund identisch behandeln, da beide Objekte dieselbe URL haben.
new Image() nicht geladen weil Fehler? -> Hintergrundbild kaputt.
new Image() erfolgreich geladen? -> Hintergrundbild garantiert auch da.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
new Image() nicht geladen weil Fehler? -> Hintergrundbild kaputt.
new Image() erfolgreich geladen? -> Hintergrundbild garantiert auch da.
Da wird man noch ein bisschen rumpfuschen müssen, da der IE onload nicht feuert bei einem Bid, dass bereits im Cache ist (was in dem Falle ja möglich ist). In dem Falle müßte man z.b. noch .complete abfragen
Struppi.
new Image() nicht geladen weil Fehler? -> Hintergrundbild kaputt.
new Image() erfolgreich geladen? -> Hintergrundbild garantiert auch da.Da wird man noch ein bisschen rumpfuschen müssen, da der IE onload nicht feuert bei einem Bid, dass bereits im Cache ist (was in dem Falle ja möglich ist). In dem Falle müßte man z.b. noch .complete abfragen
Struppi.
hi,
jup, manchmal kommt es vor, dass nicht alles angezeigt bzw geladen wird. ich werds nun so machen und mit complete abfragen.
vielen dank
greez
hi,
jup, manchmal kommt es vor, dass nicht alles angezeigt bzw geladen wird. ich werds nun so machen und mit complete abfragen.
Du hast meine Frage nicht beantwortet, denn es kommt gerne mal vor aus dem Grund, dass 'javascript:' Links genutzt werden.
.complete ist dafür ungeeignet, da nur der IE den Wert korrekt setzt (dafür feuert er die Events nnicht korrekt)
Struppi.
hi,
jup, manchmal kommt es vor, dass nicht alles angezeigt bzw geladen wird. ich werds nun so machen und mit complete abfragen.Du hast meine Frage nicht beantwortet, denn es kommt gerne mal vor aus dem Grund, dass 'javascript:' Links genutzt werden.
.complete ist dafür ungeeignet, da nur der IE den Wert korrekt setzt (dafür feuert er die Events nnicht korrekt)
Struppi.
ne ich verwende gar keine links auf der seite. gibt es noch eine weitere variante als complete?
ne ich verwende gar keine links auf der seite. gibt es noch eine weitere variante als complete?
onload
Struppi.
ne ich verwende gar keine links auf der seite. gibt es noch eine weitere variante als complete?
onload
Struppi.
wie meinst du onload?
wie meinst du onload?
Du kannst den onload Event benutzen um festzustellen ob ein Bild geladen wurde.
Struppi.
wie meinst du onload?
Du kannst den onload Event benutzen um festzustellen ob ein Bild geladen wurde.
Struppi.
im body tag? kannst du mir ein beispiel machen
ich habe jetzt das problem, dass ich im head das bild vorlade und gerade anschliessend die abfrage mache ob es komplet ist, allerdings scheint das bild nicht schnell genug geladen zu werden, bzw. das vorladen wird eingeleitet und es wird gleich weiter durch das skript gerasselt, jedenfalls wird bei der complete abfrage immer false ausgegeben...
Lieber pete,
wie meinst du onload?
Du kannst den onload Event benutzen um festzustellen ob ein Bild geladen wurde.
im body tag?
ich glaube, Du hast da etwas nicht verstanden!
var myImg = new Image();
myImg.src = "http://www.example.org/images/myImg.png";
myImg.onload = myImgOnLoadHandler; // Name der Handlerfunktion ohne Klammern!
myImg.onerror = myImgOnErrorHandler;
function myImgOnLoadHandler(e) {
alert("onload-Handler für das Bild hat gefeuert!");
...
}
function myImgOnErrorHandler(e) {
alert("Fehler-Handler für das Bild hat gefeuert!");
...
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.
[code lang=javascript]var myImg = new Image();
myImg.src = "http://www.example.org/images/myImg.png";
myImg.onload = myImgOnLoadHandler; // Name der Handlerfunktion ohne Klammern!
myImg.onerror = myImgOnErrorHandler;
Sicherheitshalber, die Zuweisung von .src nach den Zuweisungen der Eventhandler. Dürfte zwar in der Praxis keine Rolle spielen, aber man weiß ja nie.
Struppi.
Lieber pete,
wie meinst du onload?
Du kannst den onload Event benutzen um festzustellen ob ein Bild geladen wurde.
im body tag?ich glaube, Du hast da etwas nicht verstanden!
var myImg = new Image();
myImg.src = "http://www.example.org/images/myImg.png";
myImg.onload = myImgOnLoadHandler; // Name der Handlerfunktion ohne Klammern!
myImg.onerror = myImgOnErrorHandler;function myImgOnLoadHandler(e) {
alert("onload-Handler für das Bild hat gefeuert!");
...
}function myImgOnErrorHandler(e) {
alert("Fehler-Handler für das Bild hat gefeuert!");
...
}
>
>
> Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),
>
> Felix Riesterer.
irgendwie scheint jetzt gar nichts mehr zu funktionieren
<script language="JavaScript">
var glblPic = new Image();
glblPic.onload = picOnLoadHandler;
glblPic.onerror = picOnErrorHandler;
glblPic.src = "images/test.gif";
function picOnLoadHandler(e) {
{
alert();
}
funciton picOnErrorHandler(e) {
{
alert("error...");
}
....
sollte doch funktionieren oder?
es kommt aber kein alert undnix
Lieber pete,
bitte nur das zitieren, was wirklich sinnvoll ist. Komplettzitate sind es nur in den allerseltensten Fällen!
<script language="JavaScript">
^^ Du möchtest hier type="text/javascript" anstelle des language-Attributs verwenden!
var glblPic = new Image();
^^^^ für eine globale Variable lässt Du das "var" weg!
glblPic.src = "images/test.gif";
^^^^^^^^^^^^^^^^ stimmt dieser Pfad?
Zuletzt war da noch ein Schreibfehler bei "function". Bitte korrigieren und BITTE IN DIE FEHLERKONSOLE SCHAUEN!!!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
alert();
Firefox meckert bei einem leeren alert Fenster.
es kommt aber kein alert undnix
zeigt aber eine Fehlermledung an.
Struppi.
wie meinst du onload?
Du kannst den onload Event benutzen um festzustellen ob ein Bild geladen wurde.
im body tag? kannst du mir ein beispiel machen
nein, beim Image Objekt.
ich habe jetzt das problem, dass ich im head das bild vorlade und gerade anschliessend die abfrage mache ob es komplet ist, allerdings scheint das bild nicht schnell genug geladen zu werden, bzw. das vorladen wird eingeleitet und es wird gleich weiter durch das skript gerasselt, jedenfalls wird bei der complete abfrage immer false ausgegeben...
Das ist genau die Situation die ich weiter oben schon beschrieben habe.
Du kannnst so das vollständige laden überprüfen:
var img = new Image();
img.onload = function()
{
alert('Fertig: ' + this.src);
}
img.onerror = function()
{
alert('Fehler beim laden von ' + this.src);
}
img.src = ...
und wie gesagt der IE macht hier zicken und du musst im zweifelsfall auf .complete testen.
Struppi.
hi,
jup, manchmal kommt es vor, dass nicht alles angezeigt bzw geladen wird. ich werds nun so machen und mit complete abfragen.Du hast meine Frage nicht beantwortet, denn es kommt gerne mal vor aus dem Grund, dass 'javascript:' Links genutzt werden.
.complete ist dafür ungeeignet, da nur der IE den Wert korrekt setzt (dafür feuert er die Events nnicht korrekt)
Struppi.
ich merke gerade, dass ich onload() nicht verwenden kann, weil da vom framework was gesetzt wird. es gibt ja eine onbeforeunload für den ie, gibt es auch einen onbeforeload() handler?
Lieber Struppi,
.complete abfragen
wieder etwas dazugelernt! Danke!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
wäre es dann möglich, irgendwie abzufragen ob es beim laden der html-seite probleme gab, und jenachdem die ganze seite neu zu laden? zbsp onerror="location.reload();" o.ä.?
ích vermute du versuchst eine Lösung zu finden, wenn das laden der seite abgebrochen wurde und dadurch z.b. nur ein Teil eine Bildes geladen wurde?
Kann es sein dass du Links auf deiner Seite eingebaut hst, die so aussehen <a href="javascript:...">?
Struppi.