Chcę ustawić źródło obrazu na źródło base64, ale to nie działa:
<img id="img" src="" />
JavaScript
document.getElementById("img").src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="
javascript
base64
poppel
źródło
źródło
Odpowiedzi:
setAttribute
Zamiast tego spróbuj użyć :document.getElementById('img') .setAttribute( 'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' );
Prawdziwa odpowiedź: (I upewnij się, że usunąłeś podziały wierszy w base64.)
źródło
setAttribute
. Dopiero po tym niepowodzeniu zauważyłem przerwy w linii w kodowaniu base64. (Ponieważ spieszyłem się, aby otrzymać odpowiedź, nie próbowałem tegosrc=
po naprawieniu przerw.)Jeśli wolisz użyć jQuery do ustawienia obrazu z Base64:
$("#img").attr('src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==');
źródło
prop
powinien być używany zamiastattr
aktualizowania DOM.attr
odnosi się do oryginalnego stanu strony podczas ładowania.img = new Image(); img.src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" img.outerHTML; "<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">"
źródło
Twoim problemem jest CR (powrót karetki)
http://jsfiddle.net/NT9KB/210/
możesz użyć:
document.getElementById("img").src = "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
źródło