CRM で JScripting を実行していて、ある時点で立ち往生しています。問題が JScript 同期/非同期コード実行フローにあることはわかっています。CRM ページには、DB からいくつかの画像をロードして表示する html コントロールがあります。また、画像を手動でアップロードするオプションもあります。
ユーザーが画像を手動でアップロードすると、次の関数が実行されます。
function processingImage() {
var list = document.getElementById("image-list");
var imageList = list.getElementsByTagName('img');
var status = false;
for (var i = 0; i < imageList.length; i++) {
var imageSource = imageList[i].src;
var imageName = imageList[i].alt;
var imageTypeSection = imageSource.split(";")[0];
var imageType = imageTypeSection.split(":")[1];
saveImage(imageSource, imageType, "sampleImage-" + imageName);
status = true;
}
if (status) {
//alert("Saved successfully.");
}
return status;
}
この関数には、正常に保存されましたという警告ボックスがあることがわかります。問題は、このアラートを表示したときにのみ、画像が DB に保存され、ページの更新後に表示されることです。アラートボックスをコメントアウトすると(この場合のように)、画像はデータベースに保存されず、コントロールにも表示されません。
この問題を解決する方法がわかりません。助けてください。