我可以在变量中捕获此文本吗?

时间:2015-04-22 09:29:40

标签: javascript jquery

我正在研究一个处理图像的系统,如果某些参数无效,而不是返回一个图像,那么脚本只需要用一些文本来消亡。这一切在浏览器中都可以正常工作,用户可以知道发生了什么,但现在我正在创建一个表单来设置参数,我遇到了一个问题。

我正在使用$('#img').attr('src', theUrl)加载预览,但如果参数无效,我会看到损坏的图片图标,因为它只返回文字,而不是图片。

反正我是否可以捕获文本,所以我可以向用户显示出错的地方?我尝试从.error(function(event){处理程序查看事件,但我看不到任何有用的东西。

2 个答案:

答案 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。 并向用户显示错误消息。