【问题标题】:using onload and onerror javascript使用 onload 和 onerror javascript
【发布时间】:2012-12-02 11:27:08
【问题描述】:
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();


}

此代码旨在迭代网络漫画页面。如果下一页存在,它应该加载,一旦加载,就会显示。如果页面不存在,代码应该调用另一个函数,因为这表明我们可能已经到达存档的末尾。不幸的是,这段代码什么也没做。甚至滚动功能也会中断。

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 代码。很明显,我一直像个白痴一样摸索这个。我在一些地方读到过关于异步执行中断 onerror 的内容,但我认为这应该是造成这种情况的原因。

如何让 img.onload 和 onerror 函数工作?如果代码异步执行,你如何进行结构化编程?

【问题讨论】:

  • 这也很奇怪:img comic = new Image();,应该只是comic = new Image();

标签: javascript asynchronous onload onerror


【解决方案1】:

您需要在更改 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";

【讨论】:

  • lastComicReached 确实是一个函数......它也坏了,但我会继续努力,看看我能不能弄清楚。
  • 顺便说一句,它工作得非常好。你的感激之情比我所能传达的还要多。
猜你喜欢
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
相关资源
最近更新 更多