HTML5 new Image() 想写一个封装的方法 返回图片加载完成后的Image对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5 new Image() 想写一个封装的方法 返回图片加载完成后的Image对象相关的知识,希望对你有一定的参考价值。

function newImg(vSrc)
var img = new Image();
img.src=vSrc;
加载完成后再返回
return img;

参考技术A 这个只能用回调函数
function loadImg(src, callback)
var img = new Image();
img.src=vSrc;
img.onload = callback(img)

本回答被提问者和网友采纳

转使用new Image()打点时的一个注意事项

网站分析中,我们经常会用new Image()的方式向服务器发送一条打点消息,例如:

(new Image()).src = "http://log.mysite.com/1.gif?a=1&b=2&c=xxx";

  这种方式简单易用,因而被广泛采用。但上面这段代码的问题是这个new Image()是一个没有引用的临时变量,随时可能被浏览器的垃圾回收机制回收。如果这个图片的HTTP请求尚未建立,那么在被回收时这个请求就会被取消,导致打点并没有真正发出。如果打点所在的页面比较复杂,浏览器垃圾回收机制可能会被频繁触发,那么这种方式打点的丢失率可能会高达10%以上。

解决方法很简单,将这个图片赋值给一个全局变量即可,例如:

var img = new Image();
var rnd_id = "_img_" + Math.random();
window[rnd_id] = img; // 全局变量引用
img.onload = img.onerror = function () {
    window[rnd_id] = null; // 删除全局变量引用
}
img.src = "http://log.mysite.com/1.gif?a=1&b=2&c=xxx";

本文源自oldj‘s blog

以上是关于HTML5 new Image() 想写一个封装的方法 返回图片加载完成后的Image对象的主要内容,如果未能解决你的问题,请参考以下文章

js var ImgObj=new Image();

后台怎么取得js中new formdata封装的数据

关于oss上传文件的封装函数

PHP表单中含上传图片的问题,哪里不对

[ javascript New Image() ] New Image() 对象讲解

[转]HTML5 本地图片预览