2010-02-22 41 views
8

我使用下面的JavaScript函数隐藏在我的网页图像事件源图像未发现:隐藏输入=“形象”,如果没有找到图片src

function Image_OnError(image) { 
    image.onerror = ""; 
    image.style.visibility = "hidden"; 
    return true; 
} 

我添加以下属性为我的图像,在出现错误onerror="Image_OnError(this);"时调用上述方法。

的问题是,我需要为<input type="image" />元素做相同的,但无法弄清楚如何做到这一点作为输入要素没有出现有一个OnError事件。

我可以只包含一个额外的图像与输入相同的src值,然后修改图像的OnError事件的输入元素的可见性,但这似乎有点混乱。

+0

任何原因您不能将其更改为标签本身? – vpram86 2010-02-22 11:04:39

+0

输入元素是从asp:ImageButton服务器控件创建的,我需要使用它来提高必要的OnCommand事件。 – 2010-02-22 11:06:49

回答

2

如果你想要一个半黑客,你可以使用jQuery的“document.ready”事件,并检查输入的高度。

编辑:回复你回答上面的飞行员问题... 你可以使用一个asp:LinkBut​​ton,并将其内部的图像包装为内容 ...然后使用OnCommand事件LinkBut​​ton。

+0

+1伟大的这工作正常。谢谢。 – 2010-02-22 11:32:52

0

它有同样的错误事件。这一次(至少在铬)为我工作:

<input type="image" onerror="alert(1);" src="http://xxx" /> 

另一种可能的方式是JS加载图像:

在文档加载:

$('input[type="image"]').each(function(){ 
    var img = new Image(); 
    var input = this; 
    img.onerror = function() { Image_OnError(input); } 
    img.src = this.src; 
}) 

此外,你最好将它们从一开始就隐藏起来,只显示图像加载成功的元素。否则,你可能会在页面上跳转。

+0

是的,我应该说,我在Chrome上测试过它,它工作正常,但IE一如既往,另一个故事... ... – 2010-02-22 11:03:13

+0

IE 8的作品:-)你使用哪个IE? – Qwerty 2010-02-22 11:09:16

+0

也看到更新的答案:-) – Qwerty 2010-02-22 11:14:00