2017-08-09 10 views
1

コードを説明し、誰かが私を助けることができるかどうかを見てみましょう。すべてのスタイルを隠すことなくイメージの壊れたアイコンを隠すには?

私はこのコードを持っている:

<table> 
     <tr> 
      <td> 
       <img src="" id="img" class="img" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;"> 
       <input type="file" name="pathheader" id="pathheader" class="form-control-file" aria-describedby="fileHelp" style="display:none;"> 
      </td> 
      <td> 
       <img src="" id="img2" class="img2" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;"> 
       <input type="file" name="pathhome" id="pathhome" class="form-control-file" aria-describedby="fileHelp" style="display:none;"><br> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="button" name="" value="Seleccionar header" id="browse_file" class="btn btn-danger form-control"> 
      </td> 
      <td> 
       <input type="button" name="" value="Seleccionar home" id="browse_file2" class="btn btn-danger form-control"> 
      </td> 
     </tr> 
</table> 

そして、これはあまりにもコードをJS:

$("#browse_file").on('click',function(e){ 
     $("#pathheader").click(); 
    }) 
    $("#browse_file2").on('click',function(e){ 
     $("#pathhome").click(); 
    }) 
    $("#pathheader").on('change',function(e){ 
     var fileInput=this; 
     if (fileInput.files[0]) 
      { 
       var reader=new FileReader(); 
       reader.onload=function(e) 
       { 
        $("#img").attr('src',e.target.result); 
       } 
       reader.readAsDataURL(fileInput.files[0]); 
      } 
    }) 
    $("#pathhome").on('change',function(e){ 
     var fileInput=this; 
     if (fileInput.files[0]) 
      { 
       var reader=new FileReader(); 
       reader.onload=function(e) 
       { 
        $("#img2").attr('src',e.target.result); 
       } 
       reader.readAsDataURL(fileInput.files[0]); 
      } 
    }) 

私は他の質問を読んで、それを行うことが可能です。「

onerror="this.style.display='none'" 

しかし、私はドンをすべてのスタイルを非表示にしたい、私は背景、境界線などを持っていると思います。

Ajaxでそれを行う方法を知っていますか?そうでない場合は、CSSで可能でしょうか?

ありがとう、どんな助けもありがとうございます。

+0

_アイコンのみを削除するimg_ ??私は理解していません、あなたは何を取り除きたいですか? –

+0

imgがまだロードされていないときにイメージの破損アイコンを削除したい –

+0

おそらく透明なプレースホルダimgを使用しますか? – fen1x

答えて

3

エラーが発生した場合は、透明なbase64-imageを注入できます。 OPからの質問の後

onerror="this.src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='" 

編集:

Base64では、外部画像を含むのではなく、あなたのHTMLファイルに直接画像を「書き込む」ことを可能にする画像フォーマットです。

はのは、画像SRCを見てみましょう:

まず:

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

これは、次のコードを表示する方法ブラウザを教えてくれます。 srcのMIME-Type(この場合はFile Type)は.pngであり、エンコーディングは基本的にStringの画像データであるbase64であると言います。

はその後、実際のデータは次のとおり

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=

これらはそう上の画素、色、アルファなどの画像データを表すだけの文字です。 正確な動作を知りたい場合は、https://tools.ietf.org/html/rfc3548を読んだり、のリンクをクリックしてください。

また読書

(StackOverflowの上)
  • How to display Base64 images in HTML?(stackoverflowの上)

  • +0

    @TomMは動作しますが、行の何かを理解していないだけで、 'this.src'だけが私にその行を説明できますか?あなたのhrefも読んでいます。ありがとう –

    +0

    私はそれを理解して、感謝の仲間;) –

    +0

    ああ、私はすでに答えを更新しました。とにかく、あなたは歓迎です –

    関連する問題