2010-12-12 6 views
1

Heya, also renne ich in einen seltsamen Bug/Edgecase. Schauen Sie sich den folgenden Code:Image src (via Javascript) Inkonsistenz zwischen chrome/firefox

var i = new Image(); 
i.src = 'http://ia.media-imdb.com/images/M/[email protected]@._V1._SX97_SY140_.jpg'; 
console.log(i.width); 

Dies funktioniert gut in Chrom (wie es zu einem realen Bild Bezug ist), aber nicht in FF. Dachte, dass es vielleicht mit den 'at' Zeichen oder der doppelten Erweiterung (zB '._V1._SX97_SY140_.jpg') zu tun hat, weiß aber nicht wirklich.

Danke für jede Hilfe.

+0

Was sagt Firebug? Irgendwelche Fehler in der Javascript-Konsole? – Oded

+0

Ich wette, Sie müssen nur den Pfad codieren. – Hogan

+0

nicht in der Konsole, aber komischerweise bekomme ich eine 403 zurück, wenn ich in der Net-Panel schaue. Gedanken? – onassar

Antwort

0

Beachten Sie, dass das Bild asynchron geladen wird. Sie benötigen einen Ereignishandler für das Load-Ereignis des Bildes zugewiesen werden und die Breite dorthin zu gelangen:

var i = new Image(); 
i.onload = function() { 
    console.log(this.width); 
} 
i.src = 'http://ia.media-imdb.com/images/M/[email protected]@._V1._SX97_SY140_.jpg'; 
+1

ya, habe vergessen, das in meinen Code zu schreiben, aber das scheint nicht das Problem einer 403 zurückgegeben werden, da gibt es zusätzliche Header in der Anfrage in ff, dass imdb Server nicht mögen, dass Chrome scheint nicht zu senden eine lange. – onassar

+0

@onassar: Das ist wahrscheinlich ein gutes Detail, um es in die Frage selbst aufzunehmen. –

+0

Was sind die zusätzlichen Header, die imdb nicht gefällt? – Hogan

0

A 403 Antwort-Header bedeutet Verbotene (wiki), dass Sie nicht auf die Ressource zugreifen darf.

imdb.com könnte dies tun, um die Verknüpfung ihrer Bilder in anderen Websites zu verhindern.