检查是否存在一系列图像,在Javascript中找不到时停止
我想在我的网站上显示一系列以结构化方式命名的动态加载图像。图像位于不同的域中,这会导致检查是否存在一系列图像,在Javascript中找不到时停止,javascript,image,same-origin-policy,Javascript,Image,Same Origin Policy,我想在我的网站上显示一系列以结构化方式命名的动态加载图像。图像位于不同的域中,这会导致同源策略限制。我不能使用$.ajax 我用一个计数器构建我的url,比如www.example.com/Images/img-1.jpg,www.example.com/Images/img-2.jpg,然后它就变成了 我试过类似帖子中的其他几个答案,但都没能奏效。要么循环永远运行,要么它永远找不到图像,即使它们存在于路径中 第一次尝试: ShowImages: function () { var
同源策略
限制。我不能使用$.ajax
我用一个计数器构建我的url,比如www.example.com/Images/img-1.jpg
,www.example.com/Images/img-2.jpg
,然后它就变成了
我试过类似帖子中的其他几个答案,但都没能奏效。要么循环永远运行,要么它永远找不到图像,即使它们存在于路径中
第一次尝试:
ShowImages: function () {
var urlBase = 'http://www.example.com/Images/img-';
var i = 1;
while (true) {
var url = urlBase + i + '.jpg';
var imgDom = new Image();
imgDom.onload = function () {
alert('worked');
i++;
};
imgDom.onerror = function () {
return; // I want to either break the while loop, or return from ShowImages function
};
imgDom.src = url;
}
},
ShowImages: function () {
var urlBase = 'http://www.example.com/Images/img-';
var i = 1;
while (true) {
var url = urlBase + i + '.jpg';
var imgDom = document.createElement("img");
$(imgDom).attr('src', url);
if (imgDom.complete) {
alert('worked');
i++;
} else {
break;
}
}
},
它从不点击.onerror
第二次尝试:
ShowImages: function () {
var urlBase = 'http://www.example.com/Images/img-';
var i = 1;
while (true) {
var url = urlBase + i + '.jpg';
var imgDom = new Image();
imgDom.onload = function () {
alert('worked');
i++;
};
imgDom.onerror = function () {
return; // I want to either break the while loop, or return from ShowImages function
};
imgDom.src = url;
}
},
ShowImages: function () {
var urlBase = 'http://www.example.com/Images/img-';
var i = 1;
while (true) {
var url = urlBase + i + '.jpg';
var imgDom = document.createElement("img");
$(imgDom).attr('src', url);
if (imgDom.complete) {
alert('worked');
i++;
} else {
break;
}
}
},
它从不点击
.complete尝试第一个选项(您基本上需要链接它们)
只有在处理了前一个图像后,才需要尝试加载下一个图像。图像加载是异步的,您的代码实际上会向url发出一系列请求http://www.example.com/Images/img-1.jpg“
。谢谢,我知道了,但找不到方法,用@gurvinder372的方法完成了。