2013-03-27 66 views
0

场景:ALT属性

<img src="filepath" alt="image not found"> 

这将确保,如果文件没有路径,则文本会被加载发现.....

问题: 而不是一个替代文字可以加载图像?是否有任何标签将随时为我的目的,是否有任何自定义JavaScript函数可以在#alt标签?

+0

图像无法被加载。 (你有什么保证,那*图像将被发现和加载?你想为alt图像设置一个alt图像吗?等等) – sevenseacat 2013-03-27 12:50:32

+1

请注意'alt'属性基本上是一个辅助功能。在无法显示图像的环境下(例如屏幕阅读器),另一个图像不能取代。我建议你使用该属性来达到预期目的(如果适用,请提供图片的简要说明,其中“未找到图片”不是),并找到另一种方法来检测丢失的图片。 – 2013-03-27 12:56:44

+0

请参考http://stackoverflow.com/questions/3984287/how-to-show-alternate-image-if-source-image-is-not-found-onerror-working-in-ie – AmGates 2013-03-27 12:58:28

回答

0

有一个特殊的事件,让你做到这一点。它是:

<img src="" onerror="this.src='path/to/default'" /> 
+0

请参阅[onerror事件](http://www.w3schools.com/jsref/event_img_onerror.asp) – JoDev 2013-03-27 12:59:06

+0

'可以使用此..如何使用它在内部的HTML? – Raghu 2013-03-28 04:24:41

2

您可以检查图像中的JavaScript加载:

var img = document.getElementById('image'); 
if (img.complete && img.naturalWidth == 0) { 
    // some error, load alternate image: 
    img.src = "path to alternative img"; 
} 

编辑:完整的解决方案(使用onerror从@ JoDev的答案)是:

<script> 
function validate (img) { 
    // Clear the callback to avoid infinite loop in case 
    // new image path would be also invalid. 
    img.onerror = null; 

    if (img.complete && img.naturalWidth == 0) { 
    // some error, load alternate image: 
    img.src = "http://example.com/valid_path.png"; 
    } 
} 
</script> 

<img onerror="javascript:validate(this);" 
    src="http://example.com/some_invalid_path.png"/> 
+0

+1我没有知道这部分:'img.naturalWidth == 0' – JoDev 2013-03-28 08:46:12