使用onload和onerror javascript

时间:2012-12-02 11:27:08

标签: javascript asynchronous onload onerror

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页面。如果下一页存在,则应加载,并在加载后显示。如果页面不存在,代码应该调用另一个函数,因为这表明我们可能已经到了存档的末尾。不幸的是,这段代码什么都不做。甚至滚动功能都会中断。

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函数起作用?如果代码异步执行,你如何进行结构化编程?

1 个答案:

答案 0 :(得分: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";