[英]Getting an image in Base64 format as global variable
我正在嘗試獲取Base64格式的圖像
var codedPic;
var purl = 'http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png';
var codedPic = convertImgToBase64(purl, function(base64Img){ console.log('attempt 1: ' + base64Img); });
console.log('attempt 2: ' + codedPic);
它正在獲取嘗試1的結果,但是對於嘗試2,它顯示為未定義。 但是我也需要它工作。 誰能幫我嗎?
請隨時修改此jsfiddle: http : //jsfiddle.net/s7x0otdc/2/
(在小提琴中)完成轉換后,您將調用回調,因此,codedPic變量中沒有存儲任何內容。 您可以使用return codedPic;
修復它return codedPic;
而不是使用回調,或者您可以在該回調函數中執行所需的所有操作(因為完成回調函數后,您會丟失“她”的變量)
我想全局var有某種方法..但是現在我不知道該怎么做
編輯:
新的演示向您展示如何模塊化代碼。 編碼的畫面轉換功能外提供(更精確地在全局變量codedPic
)。 但是您必須等待觸發回調,以確保它現在具有正確的值。
http://jsfiddle.net/s7x0otdc/7/
好吧,您的代碼中有幾個錯誤。
var codedPic = convertImgToBase64(purl /* ... */ );
是沒有用的,因為codedPic將保持undefined
。 load
事件,因此將來您會在未知的時刻將數據放入dataURL
中。 當此刻到來時,JS將觸發您的回調並將其作為參數提供給您,該數據將按照您的轉換函數的指定。 因此,只有您的回調才能安全地將所需數據分配給全局變量,並觸發依賴於該數據的任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.