我正在研究一个处理图像的系统,如果某些参数无效,而不是返回一个图像,那么脚本只需要用一些文本来消亡。这一切在浏览器中都可以正常工作,用户可以知道发生了什么,但现在我正在创建一个表单来设置参数,我遇到了一个问题。
我正在使用$('#img').attr('src', theUrl)
加载预览,但如果参数无效,我会看到损坏的图片图标,因为它只返回文字,而不是图片。
反正我是否可以捕获文本,所以我可以向用户显示出错的地方?我尝试从.error(function(event){
处理程序查看事件,但我看不到任何有用的东西。
答案 0 :(得分:1)
这一切都取决于你得到什么样的文字。你可以控制那个......你可以使用$.get
来获取theUrl并看看你得到的回报:
$.get({
url: theUrl,
success: function(data) {
// check weither what you got back is an image or a text...
}
});
当您控制返回的img / text时,您可以更改该代码以返回错误代码而不是HTTP 200:
$.ajax({
type: 'HEAD',
url: theUrl,
success: function() {
$('#img').attr('src', theUrl);
},
error: function() {
// do something with the error
}
});
答案 1 :(得分:0)
试试这个
<img src="test.jpg" id="test"> <!-- I have a image named test.jpg -->
<img src="test_2.jpg" id="test2"> <!-- I dont have a image named test_2.jpg -->
的jQuery
$('#test').on('error', function(e){
console.log(e);
console.log('This will not give a error');
});
$('#test2').on('error', function(e){
console.log(e);
console.log('This will have a error');
});
如果您在该图像上出现错误,可以使用.css或.addClass并将图像设置为none。 并向用户显示错误消息。