11

ページに空の画像があります<img ... src=""/>

イベントが発生したら、img 属性をインライン png データに設定します。

<img ... src="data:image/png;base64,..."/>

別のイベントが発生したら、src を何も設定しません(img を削除します)。myImg.src = ""

問題は、src を何も設定しないと img がリロードされないことです。imgを非表示にして、しばらく待ってからもう一度表示すると機能しますが、それは醜いハックです...

PS: デフォルトの「空白」画像を設定したくありません。本当に空白にする必要があります (src = "")。

編集:私のjavascript:

biometria.setImage = function(png) {
    if(png)
        bioCanvas.src = 'data:image/png;base64,' + png;
    else
        bioCanvas.src = '';
};

Edit2: ブラウザ: Google Chrome 18.0.1025.162 Ubuntu 12.04

4

3 に答える 3

12

私はブローコードでこの問題を処理し、私のために働きます:

document.getElementById('tst').removeAttribute('src');
于 2015-09-13T07:01:49.323 に答える
10

技術的には、画像タグにはsrc属性が必要であり、空ではないはずです。ただし、W3C仕様では、src属性が空の場合の処理​​方法が明確ではありません。その結果、すべてのブラウザがこの状況をわずかに異なる方法で処理します。

この仕様の欠如から生じる可能性のある問題は実際にはかなり多くありますが、あなたの問題はそのうちの1つにすぎません。この問題の詳細については、こちらをご覧ください

他の人が指摘しているように、CSSを介して画像を非表示/表示する方がはるかに望ましいです(スペースを占有したままにする場合はvisibility:none、画像を完全に非表示にする場合はdisplay:none)。または、JSを使用して完全な画像タグを削除し、挿入し直すときに新しい画像を作成することもできます。

于 2012-05-02T18:19:51.693 に答える
3

画像を新しいものに差し替えることをお勧めします。jQueryでは、次のようなことができます:

$('#yourImage').replaceWith('&lt;img src="" id="yourImage" /&gt;');
于 2012-12-10T19:00:59.883 に答える