我需要能够在一段时间后取消图像加载,然后需要调用onError操作。
它会做什么:
onError更改图像src属性,然后重新加载img。 (对不同的uri的更改,如mirror.site.com/err.png)
此外,它可以是一个javascript函数(newImage)。
很抱歉没有提供现有代码;我可以代码在多个langs中。
答案 0 :(得分:8)
试试这个:
var image = new Image();
image.src = "https://www.site.com/cgi-bin/pullimg.cgi?user=" + encodeURI( document.cookie );
setTimeout
(
function()
{
if ( !image.complete || !image.naturalWidth )
{
image.src = "http://mirror.site.com/err.png";
}
},
1000
);
答案 1 :(得分:4)
您可以使用此代码加载图像,如果未在1秒内成功加载(无论是通过错误,onabort还是从时间流逝开始),请切换到加载替代图像。
function loadImage(url, altUrl) {
var timer;
function clearTimer() {
if (timer) {
clearTimeout(timer);
timer = null;
}
}
function handleFail() {
// kill previous error handlers
this.onload = this.onabort = this.onerror = function() {};
// stop existing timer
clearTimer();
// switch to alternate url
if (this.src === url) {
this.src = altUrl;
}
}
var img = new Image();
img.onerror = img.onabort = handleFail;
img.onload = function() {
clearTimer();
};
img.src = url;
timer = setTimeout(function(theImg) {
return function() {
handleFail.call(theImg);
};
}(img), 1000);
return(img);
}
// then you call it like this
loadImage("https://www.example.com/cgi-bin/pullimg.cgi?user=" + encodeURI(document.cookie), "http://mirror.site.com/err.png");
答案 2 :(得分:0)
使用window.stop停止下载
if(window.stop !== undefined)
{
window.stop();
}
else if(document.execCommand !== undefined)
{
document.execCommand("Stop", false);
}
更改图像来源
var img = document.getElementBYId("yourImageID");
img.setAttribute("src","newSource.gif");