首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使用JavaScript检查加载的图像大小

是否可以使用JavaScript检查加载的图像大小
EN

Stack Overflow用户
提问于 2012-12-18 02:32:57
回答 2查看 187关注 0票数 3

这是一个非常愚蠢的问题。但我只是想澄清我的疑虑。在加载图像时,我们可以使用onloadoncomplete事件检查加载状态。但我只想知道使用JavaScript加载了多少图像部分。真的有可能吗?

我的问题是,我们能从URL获取图像大小吗?我们能得到在某个时间间隔内图像的多少部分被加载吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-18 02:40:46

如果您通过XMLHttpRequest object加载图像,则可以加载并检查函数参数“bind to the progress event”属性“”和"total“。像往常一样,不同浏览器之间的支持可能会令人惊讶。

linked MDN article

代码语言:javascript
运行
复制
var req = new XMLHttpRequest();
req.addEventListener("progress", onProgress, false);
req.open();

function onProgress(ev) {
  if (evt.lengthComputable) {
    var percentComplete = evt.loaded / evt.total;
    // ...
  } else {
    // Unable to compute progress information since the total size is unknown.
  }
}

根据评论者@Bergi的问题更新如果您想在完全下载后将图像添加到DOM中,可以使用以下命令添加新的图像元素:

  1. 将"src“属性设置为等于您通过XHR获取的URL (并希望浏览器缓存将防止重复下载)。
  2. 或将"src”属性设置为data URI of the Base64 encoded image content,而不用担心浏览器缓存。

代码语言:javascript
运行
复制
var img = new Image(); // or document.createElement('img');
img.src = ... // URL from the above XHR request, or
img.src = 'data:image/png;base64,' + base64(xhrContent);
document.body.appendChild(img);
票数 5
EN

Stack Overflow用户

发布于 2012-12-18 02:44:18

您可以使用用于现代浏览器的html5 file api来实现这一点,它允许读取文件名、文件大小、mimetype和对文件句柄的引用-检查此example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13919977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档