如果不使用Alert框,则不执行JS功能

时间:2014-01-15 10:55:17

标签: javascript dynamics-crm-2013

我一直坚持在CRM中进行JScr​​ipting。我知道问题在于JScript同步/异步代码执行流程。 CRM页面上有一个html控件,可以从DB加载一些图像并显示它们。此外,还有一个手动上传图像的选项。

当用户手动上传图像时,执行以下功能:

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;
}

您会看到此功能中有一个成功保存的警告框。问题是当我显示此警报时,只有图像保存在数据库中,并在页面刷新后显示。如果我注释掉警告框(如本例所示),则图像不会保存到数据库中,也不会显示在控件上。

我不知道如何解决这个问题。请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以使用java脚本函数setTimeout,看看我是否有效。

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;
}


function timeout_init() {
    setTimeout('processingImage()', 2000);
}

现在拨打timeout_init而不是processingImage,希望这可以解决您的问题