0
イメージを確認するJavaScript関数がnullかどうかを調べ、関数を呼び出してイメージをbase64文字列に変換しますが、イメージを変換した後も常にその変数値を返すことができませんundefiendを示します。 updateUserDetailsそのonclick関数は、それを解決するのに役立ちます。JavaScriptの変数から戻り値を取得
var userImgData;
function updateUserDetails() {
if (userImgData === "undefined") {
ImgData = (document.getElementById("userProfileImage"));
getUserBase64Image(ImgData.src)
}
updateDetails(userImgData)
}
function updateDetails(userImgData)
{
//i am calling ajax to update
}
function getUserBase64Image(img) {
var i = img;
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
if (canvas.width > canvas.height) {
canvas.style.width = "320px";
} else {
canvas.style.height = "300px";
}
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
var dataURl = (canvas.toDataURL('image/jpeg'));
userImgData = dataURl.replace("data:image/jpeg;base64,", " ")
return userImgData ;
}
img.src = img;
}
あなたは、戻り値を待っている場合は、慎重に考えてみて?私。あなたはどこでonloadイベントハンドラを呼び出していますか? – Teemu
どのような特定の変数が 'undefined'ですか?あなたはそれをどこで定義しますか? – David
このコードのどこにでもupdateUserDetails()を呼び出すことは決してありませんが、明示的に 'userImgData'を文字列リテラル" undefined "に設定しない限り、' if'条件は失敗します。あなたがしたいことは 'if(userImgData == undefined)' < - はい、== not ===を使うか、 'if(typeIf userImgData ===" undefined ")' – mhodges