createObjectURL方法实现本地图片预览


Posted in Javascript onSeptember 30, 2019

ie6 可以直接显示本本地路径的图片 如: <img src="file://c:/3.jpg" />  ~~~网上都说ie7就不支持这种文件系统路径的url,但测试 xp ie8还是可以的

ie8+ alphaImageLoader滤镜方式加载本地路径的图片

chrome, firefox, 用dataUrl  或 createObjectURL方法实现

例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>get file input full path</title>
 <script type="text/javascript" language='javascript'>
 function getFullPath(obj) {
  var newPreview = document.getElementById("img");
  if (obj) {
  //ie
  if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
   obj.select();
   newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);";
   newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.selection.createRange().text;

   return;
  }
  //firefox
  else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
   if (obj.files) {
   newPreview.src = window.URL.createObjectURL(obj.files.item(0));

   return;
   }
   newPreview.src = obj.value;

   return;
  }
  newPreview.src = obj.value;

  return;
  }
 }
 </script>
</head>
<body>
 <input type="file" onchange="getFullPath(this);" />
 <img id="img" alt="" style="width:200px; height:200px;" src="你自己的透明图片"/>
</body>
</html>

然后 我们来看看 window.URL.createObjectURL() 到底是什么

window.URL.createObjectURL

概述

创建一个新的对象URL,该对象URL可以代表某一个指定的File对象或Blob对象.

语法

objectURL = window.URL.createObjectURL(blob);

  • blob参数是一个File对象或者Blob对象.
  • objectURL是生成的对象URL.通过这个URL,可以获取到所指定文件的完整内容.

示例

查看使用对象URL显示图片.

附注

在每次调用createObjectURL()方 法的时候,都会创建一个新的对象URL,即使参数中的这个对象已经有了自己的对象URL.在你不需要这些对象URL的时候,你应该通过调用 window.URL.revokeObjectURL()方法来释放它们所占用的内容.虽然即使你不主动释放它们,浏览 器也会在当前文档被卸载的时候替你释放,不过,考虑到更好的性能和更少的内存占用,你应该在安全的时候主动施放它们.

浏览器兼容性

createObjectURL方法实现本地图片预览

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
setInterval 和 setTimeout会产生内存溢出
Feb 15 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
JavaScript中检测变量是否存在遇到的一些问题
Nov 11 Javascript
php中给js数组赋值方法
Mar 10 Javascript
简单的jquery左侧导航栏和页面选中效果
Aug 21 Javascript
JSON取值前判断
Dec 23 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
Aug 08 Javascript
jQuery实现ctrl+enter(回车)提交表单
Oct 19 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 13 Javascript
微信小程序实现分享商品海报功能
Sep 30 #Javascript
Bootstrap实现模态框效果
Sep 30 #Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 #Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 #Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 #Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 #Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 #Javascript
You might like
php4的session功能评述(一)
2006/10/09 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
php实现多城市切换特效
2015/08/09 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
Python常用内置函数总结
2015/02/08 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python简单读取json文件功能示例
2017/11/30 Python
django框架自定义用户表操作示例
2018/08/07 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
开学典礼主持词
2014/03/19 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
理想国读书笔记
2015/06/25 职场文书