一个疑惑的小问题,望各位前辈解答。谢谢!

「已注销」 2019-04-11 09:13:58

就是这样一段代码,我原本的目的就是为了测试 getAttrValue这个函数,能不能获取到 div没有设置高度,但是被内容撑开的高度。
图片实际的高度是244,考虑到图片的对齐方式,所以实际高度会比244多出一次些。

首先说明,外部的 abc.js 文件,里面存放的内容,就是下面<script> 标签里面的内容。
第一种情况: 就像我上面代码写的那样,输出为248px。
第二种情况: 代码还是像上面那样,但是abc.js文件里面没有任何内容,输出还是248px
第三种情况: 去掉外部链接的js文件,输出为21px
第四种情况: 将外部的js文件放在 <script> 标签的后面 外部的js文件里面的内容还是一样的。第一个输出问21px,第二个输出为248px
第五种情况: 只有外部js文件 <script>标签里面的内容全部删掉,输出为248px。
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2019-04-11
  • 打赏
  • 举报
回复
引用 1 楼 天际的海浪的回复:
因为js代码执行与图片加载是并行进行的, 去掉外部链接的js文件时,获取div高度的代码是立即执行的,这时图片还没有加载,获取不到图片的尺寸。 而引入js文件与js代码执行却是串行进行的,加载js文件需要一定的时间,它后面的js代码就也延后一定的时间,在这段时间图片就可能加载了。 这时再获取div高度的代码执行就包含了图片的尺寸。
谢谢前辈,明白您的意思了👍👍
天际的海浪 2019-04-11
  • 打赏
  • 举报
回复
不过,这样利用加载js文件起到的延时并不保险。 你应该在window.onload = function(){}事件中获取div高度。window.onload 就是页面上所有内容(包括图片)都加载完毕之后触发的事件。
天际的海浪 2019-04-11
  • 打赏
  • 举报
回复
因为js代码执行与图片加载是并行进行的, 去掉外部链接的js文件时,获取div高度的代码是立即执行的,这时图片还没有加载,获取不到图片的尺寸。 而引入js文件与js代码执行却是串行进行的,加载js文件需要一定的时间,它后面的js代码就也延后一定的时间,在这段时间图片就可能加载了。 这时再获取div高度的代码执行就包含了图片的尺寸。

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧