在显示图像之前预加载图像的 JavaScript 方法不起作用

标签 javascript jquery javascript-objects

在对象构造函数中,有一个名为 addToViewport() 的方法,该方法的作用是在预加载图像后简单地显示图像:

window.onload = function(){

            function ViewportObject(){
                this.src = "https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=asdasdasd&choe=UTF-8&chld=L|0";
                this.addToViewport = function(){
                    // Determine the DOM object type to create
                        var DOM_elem = "img",
                            obj = $(document.createElement(DOM_elem)),
                            img = new Object();

                            obj.addClass("object");
                            obj.css({"z-index":"100","width":"300px","height":"auto"});

                            // Preload the image before rendering it and computing its size
                            img.src = this.src;
                            img.onload = function(){

                                obj.attr("src",this.src);
                                obj.appendTo("body");
                            }                       

                }
            }

            var o = new ViewportObject();   
            o.addToViewport();
        }

我遇到的问题是脚本没有进入“onload”事件处理程序 block ,因此图像没有显示。 我在http://picselbocs.com/test/上用与上面相同的脚本组合了一个网页。供您现场查看。

我在这里做错了什么?

最佳答案

试试这个:

改变这个

img = new Object();
....
img.src = this.src;
img.onload = function(){

    obj.attr("src",this.src);
    obj.appendTo("body");
} 

img = new Image();
....
img.onload = function(){

    obj.attr("src",this.src);
    obj.appendTo("body");
} 
img.src = this.src;

关于在显示图像之前预加载图像的 JavaScript 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12570827/

相关文章:

javascript - 我的网站如何检测浏览器是否使用深色/浅色主题而不是操作系统是否使用主题

javascript - 在垂直自动滚动和循环垂直自动滚动中防止 "jump"

javascript - JQuery 事件只触发一次,即使它被触发了不止一次

javascript - 如果键值匹配,则合并并减少。重构 JSON 数据响应

javascript - 为什么 2.23 + 0.17 = 2.4899999999999998 在 JavaScript 中?

javascript - 无法调用外部 Javascript 方法

javascript - 如果 jQuery AJAX 请求成功/失败,则执行条件代码

javascript - 根据复选框获取输入值的脚本

javascript - 根据属性名称对数组中的对象进行分组

对象