2012-12-02 88 views
4
function loadNextComic() 
{ 
window.scrollTo(200, 480); 
img comic = new Image(); 
    currentComicNumber++; 
    comic.src="Freqpg"+currentComicNumber+".jpg"; 
    comic.onload = function() 
     { 
     document.getElementById("comic").src="Freqpg"+currentComicNumber+".jpg"; 
     document.getElementById("numberOutput").innerHTML=currentComicNumber; 
     } 
    comic.onerror =lastComicReached(); 


} 

此代碼旨在迭代webcomic頁面。如果下一頁存在,它應該加載,一旦加載,顯示。如果頁面不存在,代碼應該調用另一個函數,因爲這表示我們可能已經到達了歸檔的末尾。不幸的是,這段代碼根本沒有任何作用。即使滾動功能也會中斷。使用onload和onerror javascript

function loadNextComic() 
{ 
window.scrollTo(200, 480); 
//img comic = new Image(); 
    currentComicNumber++; 
    //comic.src="Freqpg"+currentComicNumber+".jpg"; 
    //comic.onload = function() 
    // { 
     document.getElementById("comic").src="Freqpg"+currentComicNumber+".jpg"; 
     document.getElementById("numberOutput").innerHTML=currentComicNumber; 
    // } 
    //comic.onerror =lastComicReached(); 


} 

此代碼註釋掉的代碼IMG正確進步的頁面,直到我當然跑出來的頁面(連續,可靠地命名),並看到如何這一數字將每週改變,我不能只需對最後一個頁碼進行硬編碼。在查看網站上的其他示例後,我嘗試使用img.onerror和onload代碼。很顯然,我一直在像這樣一個白癡摸索。我已經在幾個地方讀過關於異步執行破壞錯誤的地方,但我認爲這應該解釋這一點。

如何獲取img.onload和onerror函數?如果代碼異步執行,你如何進行結構化編程?

+0

這也是奇怪:'IMG漫畫=新的圖片();',或許應該只是'漫畫=新的圖片();'。 – Teemu

回答

3

你需要在你的改變src

你也更換使用onerror聲明它們,因此,你需要刪除(),除非lastComicReached返回函數

最後img comic是無效的語法,你的意思是var comic

var comic = new Image(); 
comic.onload = function() { 
    document.getElementById("comic").src="Freqpg"+currentComicNumber+".jpg"; 
    document.getElementById("numberOutput").innerHTML=currentComicNumber; 
} 
comic.onerror =lastComicReached; // remove the() here!! 
comic.src="Freqpg"+currentComicNumber+".jpg"; 
+0

lastComicReached的確是一個功能......它也被打破了,但我會繼續努力,看看我能否弄清楚。 – user1869994

+0

它的方式奇妙的工作。你比我能交流更多的感激之情。 – user1869994