2010-02-22 75 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