6

キャンバス上のいくつかの画像を変更してから、この画像の src を新しい base64 コードの画像に設定しています。

img.src = changeColor(img);

changeColor は base64 コード化されたイメージを返します。

return canvas.toDataURL();

Chrome と Opera は src の変更後にイメージを更新しますが、firefox はそうではありません! 画像要素も FireBug で調べたところ、新しい src と新しい画像が表示されました!

すでに URL にデータを追加しようとしましたが、うーん...これは URL ではなく base64 でコード化された画像なので、写真が完全に壊れてしまいます。

画像を強制的にリロードする方法や、javascript を介して Firefox キャッシュを無効にする方法はありますか?

更新: image.src=''; も設定しようとしました。changeColor 関数で。Chrome では動作しますが、Firefox では... 画像が消え、新しい base64 値を設定しても表示されません。

4

3 に答える 3

1

私は画像データを使用していませんが、これは、src 変数が変更されなかったときに FF がリロードされないという同様の問題に対して機能しました。

image.src = "";
setTimeout(function(){
    image.src = //the new image src
}, 0);
于 2014-03-25T17:05:53.817 に答える
1

@dmmdが述べたように、それは私のために働いています。ランダムな値でクエリ文字列を追加するだけです。

id.src = "path?t=t"+ Math.random(5);
于 2013-07-26T10:55:35.607 に答える
0

画像フォーマットを追加してみてください (そして jpg を使用してください)。画像を再エンコードする場合があります。

return canvas.toDataURL('image/jpg');
于 2012-08-04T16:34:22.483 に答える