Bagaimana cara mengatur Sumber gambar dengan base64


96

Saya ingin mengatur Sumber gambar ke sumber base64 tetapi tidak berhasil:

JSfiddle.net/NT9KB

<img id="img" src="" />

JavaScript

document.getElementById("img").src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="

9
Ini berfungsi jika Anda menghapus jeda baris di string base64. Biola diperbarui.
— Adriano Repetti

Jawaban:


140

Coba gunakan setAttributesebagai gantinya:

document.getElementById('img')
    .setAttribute(
        'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
    );

Jawaban sebenarnya: (Dan pastikan Anda menghapus pemisah baris di base64.)


terima kasih, saya akan menerimanya dalam 10 menit, mengapa setAttribute lebih baik?
— poppel

@poppel Saya rasa itu tidak penting, tapi usaha pertama saya untuk memperbaiki biola Anda adalah menggunakannya setAttribute. Setelah itu gagal saya melihat jeda baris dalam pengkodean base64. (Karena saya terburu-buru untuk mendapatkan jawaban yang dikirimkan, saya tidak mencobanya src=setelah memperbaiki jeda baris.)
— Kevin Boucher

26

Jika Anda lebih suka menggunakan jQuery untuk mengatur gambar dari Base64:

$("#img").attr('src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==');

5
@TruthSerum kami tidak menggunakannya, karena kami beralih ke tumpukan React. Tetapi untuk bersenang-senang, apakah Anda memiliki bukti statistik untuk membuktikan klaim Anda? Apakah menurut Anda tidak ada aplikasi web lama yang menggunakan jQuery? Komentar Anda didasarkan pada pendapat pribadi Anda, dan benar-benar membuang-buang waktu pribadi saya. Juga jika Anda memeriksa proyek, itu masih dipertahankan dan memiliki basis pengikut yang besar. github.com/jquery/jquery/commits/master
— Faris Zacina

5
Juga @TruthSerum berikut adalah beberapa statistik, karena Anda tidak sempat memeriksanya sebelum memposting komentar Anda: google.com/trends/…
— Faris Zacina

Hari-hari ini, propsebaiknya digunakan sebagai pengganti attruntuk memperbarui DOM. attrmengacu pada status halaman asli saat memuat.
— AntonChanning

6
img = new Image();
img.src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
img.outerHTML;
"<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">"

4

Masalah Anda adalah cr (kereta kembali)

http://jsfiddle.net/NT9KB/210/

kamu bisa memakai:

document.getElementById("img").src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="

Apa solusinya sebenarnya di sini?
— AHH

Solusinya di sini adalah menghapus jeda baris (kereta kembali) dari Base 64.
— Kevin Boucher
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.