2012-05-02 12 views
7

をのimgからデータを削除します。HTML/Javascriptのイベントは、私がデータをPNG形式インラインにIMG属性を設定発生した場合、私は私のページに<code><img ... src=""/></code></p> <p>を空のimgを持つsrc属性

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

別のイベントは、私は何も(IMGを除く)にSRCを設定発生します。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

+1

あなたのJSコードを表示することができますjQueryのではあなたのような何かをするだろうか? – Bongs

+0

透明な1px/1pxのbase64コードを取得し、それを使用します。空白ですが、一部のブラウザでは画像フォーマットを返さないと壊れて表示されます。 – GillesC

+0

使用しているスクリプトコードを共有できますか? – redlena

答えて

6

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

実際には、この仕様の不足から生じる可能性のある問題が数多くありますが、そのうちの1つに過ぎません。この問題の詳細はhereです。

他の人が指摘しているように、CSSを使ってイメージを表示/非表示する方がはるかに好ましいです(スペースを占有したい場合は表示:なし、イメージを完全に表示しない場合は表示なし) 。または、JSを使用して完全なイメージタグを削除し、それを元に戻すときに新しいイメージを作成することもできます。

+0

ありがとうございました。表示:隠された仕事は厳しいものでしたが、imgのアウトラインは表示されません(私はそれで生きることができます)。 – islon

+1

@islon imgを 'display:none'または' visibility:hidden'に設定し、有効なsrcを持っていれば、まだダウンロードされていることに注意してください。 –

3

イメージを新しいイメージに置き換えることをお勧めします。私は私のためにブローコードと作業することで、この問題に対処

$('#yourImage').replaceWith('&lt;img src="" id="yourImage" /&gt;'); 
2

document.getElementById('tst').removeAttribute('src'); 
+0

あなたのトリックは仕事をしました! – Ruben

関連する問題