我在 CRM 中执行 JScripting 时陷入了困境。我知道问题出在 JScript 同步/异步代码执行流程上。 CRM 页面上有一个 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;
}
您会看到该功能中有一个保存成功的警告框。问题是当我显示此警报时,只有图像才会保存在数据库中,并在页面刷新后显示。如果我注释掉警报框(如本例所示),则图像不会保存到数据库中,也不会显示在控件上。
我不知道如何解决这个问题。请帮忙。
最佳答案
你可以使用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
,希望这可以解决您的问题
关于javascript - 如果不使用Alert box,JS函数不会被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21135502/