2010-12-12 7 views
1

Heya、私は奇妙なバグ/ edgecaseを実行しています。次のコードを確認してください:イメージクローム/ firefoxの間のsrc(javascriptによる)不一致

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

これは実際の画像を参照しているようにクロームで問題なく動作しますが、FFでは失敗します。それは 'at'記号や二重の拡張子(例えば '._V1._SX97_SY140_.jpg')と関係があるかもしれないと思っていますが、実際にはわかりません。

ありがとうございました。

+0

ファイヤーバグとは何ですか? javascriptコンソールにエラーがありますか? – Oded

+0

私は、パスをURLでエンコードする必要があると思います。 – Hogan

+0

コンソールにはありませんが、不思議なことに、ネットパネルを見ると403が返ってきます。思考? – onassar

答えて

0

イメージが非同期に読み込まれることに注意してください。あなたは、リソースへのアクセスを許可されていないこと、

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、それを私のコードに入れるのを忘れていましたが、それは、imdbのサーバが好きではない、そのクロムが送信されないように見えるffのリクエストに余分なヘッダがあるので、一緒に。 – onassar

+0

@onassar:おそらく質問自体に含めるのがよいでしょう。 –

+0

imdbが気に入らない追加のヘッダは何ですか? – Hogan

0

403レスポンスヘッダが禁断wiki)を意味:あなたは、画像のloadイベントのイベントハンドラを割り当て、そこに幅を取得する必要があります。

他のサイトでのイメージのホットリンクを防ぐために、imdb.comがこれを実行している可能性があります。

関連する問題