我在多個應用程序服務器上部署了一個映像(綠色向上箭頭:uparrow.gif)。我有一個應用程序服務器狀態頁面,其中列出了所有服務器以及相應的映像,其中映像的源代碼是該服務器的uparrow.gif。如果圖像不加載(服務器關閉),我想切換到紅色向下箭頭(downarrow.gif)。有沒有一種方法來檢查圖像是否加載或沒有直接的JavaScript(沒有JS庫等)?我想我會設置一個間隔讓它繼續檢查用戶是否在頁面上。謝謝。測試使用JavaScript正確加載的圖像
2
A
回答
2
var image = new Image();
image.onload = function() {
// display green arrow
}
image.onerror = function() {
// display red arrow
}
image.src = 'http://yourserver/test.gif';
編輯:
隨着在它已經成爲一個有點棘手的HTML圖像,因爲onerror事件是不是僅僅HTML DOM的一部分。理論上你可以這樣做,如果你不介意無效標記:
<img src="http://yourserver/up_arrow.png" onerror="this.src='down_arrow.png'">
1
現在StackOverflow可以不辜負它的名字。 下面的代碼給出了一個在IE中的計算器,但它應該運行。 這是什麼問題?修復和JOHKAR有一個解決方案
<script>
var timeout = 600000; // 10 minutes
var servers = {
server1:'//server1',
server2:'//server2'
} // not the lack of comma after the last iterm
var tIds = [];
function loadImage(id) {
document.getElementById(id).src=servers[id]+'/on.gif?timestamp='+new Date().getTime(); // make sure it does not cache
}
window.onload=function() {
for(var server in servers){
var img = document.createElement('img');
img.id=server;
img.onload=function(){
clearTimeout(tIds[this.id]);
tIds[this.id]=setTimeout("loadImage('"+this.id+"')",timeout); // run again in 10 minutes
}
img.onerror=function(){
this.src="off.gif";
this.title = 'server off at '+new Date();
clearTimeout(tIds[this.id]);
tIds[this.id]=setTimeout("loadImage('"+this.id+"')",timeout); // run again in 10 minutes
} // off cannot come from the broken server
document.getElementById('imageContainer').appendChild(img);
loadImage(server)
}
}
</script>
<div id="imageContainer"></div>
1
您顯示爲死者服務器紅色箭頭和表示活的綠色箭頭的任務是可以解決的,只有CSS:<img src="http://server/greenarrow.gif" style="background:url(local/redarrow.gif)"/>
。不需要JavaScript,默認情況下會顯示紅色箭頭,並且只有服務器啓動並運行時,綠色箭頭纔會顯示,而不是紅色箭頭。
但是如果你真的想用js去,那麼onerror
事件會有所幫助。
相關問題
- 1. Javascript圖像預加載不正確
- 2. 圖像加載不正確
- 3. 圖像加載不正確
- 4. Javascript正在加載圖像
- 5. 檢測Flash應用程序是否使用Javascript正確加載?
- 6. 正確的jquery ajax加載圖像
- 7. 的Javascript不加載正確的圖像在Firefox V8 - V11
- 8. Javascript的 - 正在加載圖像
- 9. 正確使用javascript位置圖像
- 10. 使用javascript的懶惰加載圖像
- 11. 使用Javascript的懶惰加載圖像
- 12. Javascript:將圖像加載到getImageData的正確方式?
- 13. 圖像預加載功能測試
- 14. 加載單元測試的測試圖像
- 15. 使用Kingfisher,UITableView中的圖像加載不正確
- 16. 這些預加載的圖像是否正確使用?
- 17. 無法正確使用加載的圖像數據
- 18. UITableViewCell在重新使用後加載不正確的圖像
- 19. Cocos2d。正確加載和存儲圖像?
- 20. Android。 LazyAdapter加載圖像不正確
- 21. 圖像加載不正確在HTML中
- 22. UIImage/UITabBarItem沒有正確加載圖像
- 23. FancyBox圖像未正確加載
- 24. QWebView不能正確加載圖像
- 25. MatLAB加載圖像並正確顯示
- 26. WPF不能正確加載圖像
- 27. GridView圖像加載不正確
- 28. MongoDB GridFS圖像加載不正確
- 29. 正確使用通用圖像加載器
- 30. 用於加載測試的腳本JavaScript
這似乎並不正確,我錯過了什麼? function checkImg(){ \t var imgs = document.getElementsByTagName(「img」); (i = 0; i
johkar
2010-04-20 15:57:56
啊,好的,你已經得到了HTML中的圖像。請參閱編輯... – RoToRa 2010-04-20 21:19:17