js获取图片高度时经常会获取的图片高度为0,原因是图片未加载完毕。第一次加载时,显示0(火狐等部分浏览器显示24)。待加载完毕后,再刷新,显示图片高度258。

var oImg = document.createElement("img");
oImg.src = "http:////www.baidu.com/img/bdlogo.png";
document.getElementsByTagName("body")[0].appendChild(oImg);
console.log(oImg.height);

  onload可以避免这种问题。

oImg.onload = function(){
console.log(this.height);
};

  jquery有类似方法。

$(oImg).load(function(){
console.log($(this).height());
});

  浏览器加载图片只加载一次,第二次则读取缓存。onload事件只在第一次加载过程中触发。如果我们无论图片是否存在缓存中都在图片加载完毕后执行某语句,则可利用img的complete属性。complete为true时,表示图片存在于缓存中。

if(oImg.complete){
  console.log(oImg.height);
}else{
  oImg.onload = function(){
  console.log(this.height);
  };
}

js获取图片高度的更多相关文章

  1. 为什么js获取图片高度的值 都为0

    尼玛 这个问题困扰我好久~ 看别人取值都是 img.width 我取到的总是0: 终于发现取图片尺寸的时候 图片还没有加载完毕.所以在 <img id ='sImg' class='thumbI ...

  2. JS Img对象获取图片高度宽度(兼容Chrome)

    一般获取图片高度宽度的写法: var img = new Image();img.src = imgsrc;var imgWH = CalcImgTiple(img.width, img.height ...

  3. jquery的height()和javascript的height总结,js获取屏幕高度

    jquery的height()和javascript的height总结,js获取屏幕高度 2014年9月18日 15048次浏览 引子 今天是九一八事变八十三周年,大家勿忘国耻!加油学习!经济和技术等 ...

  4. JS获取屏幕高度

    主要使用了document对象关于窗口的一些属性,这些属性的主要功能和用法如下. 要 得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在netscape下需要使用w ...

  5. JS 获取星期几的四种写法

    今天是星期几的4种JS代码写法,有需要的朋友可以参考一下 第一种写法 复制代码代码如下: var str = "";  var week = new Date().getDay() ...

  6. jquery easyui datagrid js获取记录数 页数 当前页

    首先要吐槽的是 easyui竟然找不到未压缩的版本(1 也许它是藏在某个个几角旮旯; 2 压缩的版本想看懂? 大概你得在你脑袋上外接个CPU), 而且官方的文档简陋的不能再简陋了, 想实现个稍微复杂点 ...

  7. JS获当前网页元素高度offsetHeight

    本文测试的是offsetHeight,获取网页中某元素的高度,单位是像素,获取的类型是整型,可以进行数字运算.如图,网页中的元素本身的高度包括,自身的内容+padding+border,而margin ...

  8. JS获取屏幕高度(转)

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...

  9. jquery 页面加载时获取图片高度

    $(function () { $(window).load(function(){ alert($('img').height()); }); });

随机推荐

  1. 从内部剖析C# 集合之---- HashTable

    这是我在博客园的第一篇文章,写的不好或有错误的地方,望各位大牛指出,不甚感激. 计划写几篇文章专门介绍HashTable,Dictionary,HashSet,SortedList,List 等集合对 ...

  2. 为ant指定编译版本

    用Eclipse的ant折腾了一天也没搞清楚为什么同样的设置ant出的class版本却不一样.后来下载个ant工具在命令行执行通过. 从网上抄得指定编译版本的方法如下: ant 运行时,必需依赖jdk ...

  3. call和apply还有bind

    有图有真相 function myfun1(){ //这是私有属性 var private1 = "这是私有属性1"; var privateMethod = function() ...

  4. jsp的url后跟中文参数传参出现乱码

    ①重新编码:String urlParam= request.getParameter("urlParam");  urlParam= new String(urlParam.ge ...

  5. Android开源项目发现---TextView,Button篇(持续更新)

    android-flowtextview 文字自动环绕其他View的Layout 项目地址:https://code.google.com/p/android-flowtextview/ 效果图:ht ...

  6. CONCATENATION 引发的性能问题

    背景是在一台11gR2的机器上,开发反映一个批处理比以前慢了3倍.经过仔细查看该SQL的执行计划,发现由于SQL中使用了or,导致CBO走出了一个非常糟糕的CONCATENATION路径. no_ex ...

  7. BZOJ1232: [Usaco2008Nov]安慰奶牛cheer

    1232: [Usaco2008Nov]安慰奶牛cheer Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 578  Solved: 403[Submi ...

  8. 关于Unity的ViewSpace(CameraSpace)的坐标系

    从昨天开始遇到一个看似很小,但令我苦恼的问题,由于对Unity的坐标系没有直接搞清楚,所以导致一个shader没看懂,于是发了个贴:http://game.ceeger.com/forum/read. ...

  9. UIAlertView的使用

    UIAlertView是用于弹出一个对话框进行选择或者消息提示 构造函数:     UIAlertView * alert = [[UIAlertViewalloc] initWithTitle:@& ...

  10. HDU2037 今年暑假不AC 贪心算法

    贪心算法 : 贪心算法就是只考虑眼前最优解而忽略整体的算法, 它所做出的仅是在某种意义上的局部最优解, 然后通过迭代的方法相继求出整体最优解. 但是不是所有问题都可以得到整体最优解, 所以选择贪心策略 ...