[問題]Javascript 沒有每次都執行

看板Ajax作者 (TEST123)時間13年前 (2012/08/09 10:55), 編輯推噓2(2011)
留言13則, 4人參與, 最新討論串1/2 (看更多)
想請教 我寫了一個檢查破圖的js 但是不是每次都會把所有的破圖取代 有時候全部都沒有取代 但是重新整理幾次之後就又好了 流程是這樣 抓到某個div區塊內所有的圖片 檢查如果是破圖就取代成另一張圖 程式碼如下 <script type="text/javascript"> var imgs = document.getElementById("show").getElementsByTagName("img"); for(var i = 0;i < imgs.length;i++){ imgs[i].onerror = function(){ this.src = "./images/broken_pic.jpg"; } } </script> 我放在</body>之前 剛剛聽了musie的意見我改了一下但是不會取代@@ <script type="text/javascript"> var imgs = document.getElementById("show").getElementsByTagName("img"); for(var i = 0;i < imgs.length;i++){ if(imgs[i].complete){ imgs[i].onerror = function(){this.src = "./images/pez_broken_pic.jpg";} } } </script> 我嘗試了imgs[i].onload = function(){this.src = "./images/pez_broken_pic.jpg";} 還是有部分不會被取代 imgs[i].complete = function(){this.src = "./images/pez_broken_pic.jpg";} 則是全部沒有取代 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.54.242

08/09 11:00, , 1F
看起來就是沒有檢查img是否已經讀取完畢..
08/09 11:00, 1F

08/09 11:00, , 2F
所以第一次讀取時就是會死掉..
08/09 11:00, 2F

08/09 13:43, , 3F
會不會是第一行還沒執行完 迴圈就跑完了?
08/09 13:43, 3F
※ 編輯: piglon 來自: 114.36.54.242 (08/09 13:46)

08/09 13:47, , 4F
我再試一下!!謝謝~
08/09 13:47, 4F
※ 編輯: piglon 來自: 114.36.54.242 (08/09 14:50) ※ piglon:轉錄至看板 PHP 08/09 15:11

08/09 15:33, , 5F
還是不行~~
08/09 15:33, 5F
piglon:轉錄至看板 Web_Design 08/09 15:57

08/09 16:13, , 6F
瀏覽器是什麼?
08/09 16:13, 6F

08/09 16:14, , 7F
alert看看你的imgs.length 看看數量對不對
08/09 16:14, 7F

08/09 16:15, , 8F
跳窗出來的數量對!!有400多個 瀏覽器 chrome ie firfox
08/09 16:15, 8F

08/09 16:16, , 9F
三個瀏覽器情況一樣
08/09 16:16, 9F

08/09 16:24, , 10F
建議使用console.log('1,2,....')來看執行順序~
08/09 16:24, 10F

08/09 16:24, , 11F
用chrome的開發人員工具的Console頁面來檢視
08/09 16:24, 11F

08/09 16:36, , 12F
應該是你在定義onerror之前就已經觸發過onerror了
08/09 16:36, 12F

08/09 16:53, , 13F
而且complete是屬性 不是event
08/09 16:53, 13F
文章代碼(AID): #1G8oQE45 (Ajax)
文章代碼(AID): #1G8oQE45 (Ajax)