2013-05-08 5 views
62

साथ मैं एक बेस 64 स्रोत के लिए छवि स्रोत सेट करना चाहते हैं निर्धारित कर सकते हैं, लेकिन यह काम नहीं करता है:मैं कैसे छवि स्रोत बेस 64

JSfiddle.net/NT9KB

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

जावास्क्रिप्ट

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

यह काम करता है यदि आप बेस 64 स्ट्रिंग में लाइन ब्रेक को हटाते हैं। पहेली अद्यतन –

उत्तर

87

कोशिश setAttribute का उपयोग करके:

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

रियल जवाब: (और तुम बेस 64 में लाइन ब्रेक अवश्य निकाल दें।)

+0

thx, मैं 10 मिनट में स्वीकार करूंगा, setAttribute बेहतर क्यों है? – poppel

+0

@poppel मुझे नहीं लगता कि यह महत्वपूर्ण है, लेकिन आपकी पहेली को ठीक करने का मेरा पहला प्रयास 'setAttribute' का उपयोग करना था। इसके बाद यह असफल रहा कि मैंने बेस 64 एन्कोडिंग में लाइन-ब्रेक देखा। (चूंकि मैं एक उत्तर सबमिट करने के लिए दौड़ रहा था, इसलिए मैंने लाइन-ब्रेक को ठीक करने के बाद 'src =' के साथ कोशिश नहीं की।) –

+0

आपको इसे 'डेटा' से पहले '' 'जोड़ना चाहिए: ... इसे काम करने के लिए। – Vadim

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

मामले में आप jQuery का उपयोग करने के Base64 से छवि स्थापित करने के लिए पसंद करते हैं:

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

@TruthSerum हम इसका उपयोग नहीं कर रहे हैं, क्योंकि हम एक रिएक्ट स्टैक पर स्विच करते हैं। लेकिन मस्ती के लिए, क्या आपके पास अपना दावा साबित करने के लिए सांख्यिकीय सबूत हैं? क्या आप वास्तव में सोचते हैं कि jQuery का उपयोग कर कोई विरासत वेब ऐप्स नहीं हैं? आपकी टिप्पणी आपकी व्यक्तिगत राय पर आधारित है, और वास्तव में मेरे व्यक्तिगत समय की बर्बादी है। अगर आप परियोजना की जांच भी करते हैं, तो यह अभी भी बनाए रखा गया है और इसमें एक बड़ा अनुयायी आधार है। https://github.com/jquery/jquery/commits/master –

+5

इसके अलावा @TruthSerum कुछ आंकड़े हैं, क्योंकि आपको अपनी टिप्पणी पोस्ट करने से पहले उन्हें जांचने का मौका नहीं मिला: https://www.google। कॉम/ट्रेंड/एक्सप्लोर # क्यू = jquery% 2C% 20angular और cmpt = q और tz = आदि% 2FGMT-2 –

1

आपकी समस्या करोड़ (गाड़ी वापसी) कर रहे हैं

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

आप का उपयोग कर सकते हैं:

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

बिल्कुल समाधान क्या है? – AHH

+0

आधार 64 से लाइन ब्रेक (कैरिज रिटर्न) को हटाने का समाधान यहां है। –

संबंधित मुद्दे