JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】

下面是JS实现获取图片大小和预览的方法完整实例攻略:

目录

  1. 需求说明
  2. 技术方案
  3. 具体实现
  4. 完整代码
  5. 总结

1. 需求说明

我们想要做一个功能,可以让用户上传图片,并且在上传图片前可以对图片进行大小预览。同时,需要能够兼容IE和其它浏览器。

2. 技术方案

我们可以使用HTML5的File API来获取图片大小和预览图片,在IE浏览器中我们可以使用IE浏览器特有的ActiveXObject来代替File API实现相同的效果。

3. 具体实现

3.1 获取图片大小

使用File API获取图片的大小,示例代码如下:

function getImageSize(inputFile) {
  var file = inputFile.files[0];
  var img = new Image();
  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e) {
    img.src = e.target.result;
    img.onload = function() {
      console.log("图片大小为:" + img.width + "*" + img.height);
    }
  }
}

上述代码中,我们首先获取了用户上传的文件和一个Image对象。通过FileReader对象的readAsDataURL方法,我们将图片文件读入内存中,然后通过将图片的dataURL设置到Image对象的src属性中,来获取图片的大小。

3.2 预览图片

同样使用File API来预览图片,示例代码如下:

function previewImage(inputFile, imgElement) {
  var file = inputFile.files[0];
  var reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = function(e) {
    imgElement.src = e.target.result;
  }
}

上述代码中,我们同样是先获取用户上传的文件,然后将图片的dataURL赋值给img标签的src属性,来完成图片的预览。

4. 完整代码

下面是结合上述两个示例的完整代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>图片上传</title>
  </head>
  <body>
    <input type="file" onchange="getImageSize(this);previewImage(this, img);" />
    <img id="img" />
    <script>
      function getImageSize(inputFile) {
        var file = inputFile.files[0];
        var img = new Image();
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(e) {
          img.src = e.target.result;
          img.onload = function() {
            console.log("图片大小为:" + img.width + "*" + img.height);
          }
        }
      }

      function previewImage(inputFile, imgElement) {
        var file = inputFile.files[0];
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(e) {
          imgElement.src = e.target.result;
        }
      }
    </script>
  </body>
</html>

5. 总结

使用File API可以轻松地实现获取图片大小和预览图片的功能。同时,为了兼容IE浏览器,我们还可以使用ActiveXObject来代替File API实现相同的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Move.js入门

    Move.js入门攻略 什么是Move.js Move.js是一个轻量级的JavaScript动画库,用于实现Web页面中的动画效果。它支持常用的CSS动画属性以及自定义路径和缓动效果,同时具有跨浏览器兼容性和高性能特点。 安装Move.js 可以通过以下两种方式来安装Move.js: 从官方网站下载move.min.js文件并引入到HTML文件中: &lt…

    JavaScript 2023年6月10日
    00
  • Javascript中的解构赋值语法详解

    Javascript中的解构赋值语法详解 Javascript解构赋值语法是一种简洁、高效的变量声明和赋值方式,可以在一行代码中完成多个变量的赋值。在Javascript ES6中,引入了解构赋值语法,使得变量的声明和赋值变得更加简便。下面我们来详细讲解Javascript中的解构赋值语法。 一、数组解构赋值 1. 数组解构赋值介绍 数组解构赋值,指的是将数…

    JavaScript 2023年5月27日
    00
  • JavaScript小技巧整理篇(非常全)

    JavaScript小技巧整理篇(非常全) 本文整理了一些需要注意的细节和小技巧,以帮助读者更好地理解和使用JavaScript。 一、变量声明 在JavaScript中,变量声明有三种方式:var、let和const。 1.1 let和const let和const是在ES6中引入的新的变量声明方式。let会在当前代码块作用域内声明一个变量,而const会…

    JavaScript 2023年5月17日
    00
  • 基于JavaScript实现年月日三级联动

    下面我就来详细讲解一下如何基于JavaScript实现年月日三级联动。 实现原理 实现年月日三级联动主要需要三个下拉框,分别表示年、月、日。通过JavaScript动态生成年份和月份的下拉框选项,然后根据选中的年份和月份动态生成对应的日期选项。在选项变化时,页面自动根据选中内容更新显示内容。 具体实现流程如下: 定义HTML页面,包括三个下拉框,分别表示年、…

    JavaScript 2023年6月10日
    00
  • JavaScript异步编程Promise模式的6个特性

    当我们使用JavaScript编写复杂的应用时,经常会遇到需要进行异步操作的情况,例如异步请求数据或处理大量的计算任务。Promise模式是一种异步编程的解决方案,它对异步操作进行了抽象和封装,并提供了一些特性来更好地处理和管理异步操作。下面是JavaScript Promise模式的6个特性的详细讲解: 1. Promise是一个对象 在JavaScrip…

    JavaScript 2023年5月28日
    00
  • JS 对象(Object)和字符串(String)互转方法

    JS 对象(Object)和字符串(String)互转方法是前端开发中非常常用的操作。下面是详细的攻略: 1. JS 对象转字符串 1.1 JSON.stringify() 一个 JS 对象可以通过使用 JSON.stringify() 方法转化为字符串类型。该方法接收一个参数,即要转化的对象。 示例代码: let person = { name: ‘Jac…

    JavaScript 2023年5月27日
    00
  • thinkphp3.x中display方法及show方法的用法实例

    下面我将为你详细讲解”thinkPHP3.x中display方法及show方法的用法实例”的完整攻略。 一、display方法的用法 在thinkPHP中,display方法可以用来显示模板文件,当你调用display方法时,系统默认会去找位于View目录下的相应视图文件进行模板渲染,这个方法主要有两个参数: display($templateFile=”…

    JavaScript 2023年5月19日
    00
  • Javascript模仿淘宝信用评价实例(附源码)

    下面我来详细讲解“Javascript模仿淘宝信用评价实例(附源码)”的完整攻略。 首先,该实例主要是通过Javascript实现了一个简单的淘宝信用评价功能。用户可以通过点击不同的星星来进行评分,然后根据评分的不同,会有不同的反馈信息和评价结果。该实例的源码已经公开,可以在Github上获取。 接下来,我们来看具体的实现过程。首先,我们需要为页面添加一些基…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部