base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)
base64图片在各种浏览器的兼容性处理
base64图片在各种浏览器的兼容性处理IE浏览器目前最高的版本是v11,而微软放弃了IE,转向新的浏览器开发,并取名为Edge。base64图片在IE9及以后的图片均能显示没有问题,而Firefox, Chrome, Safari等非IE浏览器都能正常显示,所以显得IE浏览器比较low。那么兼容性究竟应该怎么来处理呢? 分三种情况。
(1)IE9+、Firefox、Chrome、Safari等浏览器
base64图片在HTML里的标准写法是:
<img src="data:image.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
javascript给img元素的src属性赋值或是给其他元素的backgroundImage属性赋值都可以正确的显示图片。
其格式为 data:{mimeType};base64,{code}
{mimeType}是指图片的格式类型,一般来说.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
{code}是指图片二进制转换成base64的字符串。 (2)IE6、IE7浏览器 低版本的IE浏览器不支持img的src属性用data:image.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
其中,bondary="imagedata"中的imagedata是指图片的标识前缀,可任意命名,所有的图片流都以这个两个减号和该前缀开头。Content-Location: showimg中的showimg是指图片的标识名称,可任意命名,IE6和IE7的CSS调方法为 .non_img_tag { *background-image: expression('mhtml:http://test.oa.com/base64.html!showimg');} 其中*background-image里*表示只有ie6 ie7ie8才能访问的CSS属性,俗称CSS hack。showimg是放在当前网页的网址加一个感叹号后面。expression是IE浏览器早期版本才支持,可用于js调用,隐患很大,其他浏览器不支持。mhtml是微软的一种网页格式,其扩展名为.mht,它会把网页中需要的图片写到单一的文件里。IE右键菜单点击另存为...会有单一文件选项。 注意:因为ie6和ie7不支持data:image.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
(3)IE8浏览器 ie8浏览器分两种情况。一种是在XP下ie6升级到ie8,另一种是Win7自带的ie8。两者的区别是XP下的ie8不支持javascript直接将backgroundImage赋值为base64值。但是Win7下是可以的。 如何兼容 在代码上我们使用UserAgent里的Trident和Windows NT版本来确认ie8在何种情况使用: A.当NT版本是NT 5.x并且Trident没现出现的时候,判定为xp下的ie6和ie7,执行第2种情况; B.当NT版本是NT 5.x并且Trident 4.0的时候,判定为xp下的ie8,执行第2种情况; C.当NT版本是NT 6.x时,为win7、win8、win10系统,执行第1种情况; D.都不是时,就是非IE流览器,执行第1种情况 完整的代码如下: 执行效果 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
<!--
Content-Type: multipart/related; boundary="imagedata"
--imagedata
Content-Type: image.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
<!--
Content-Type: multipart/related; boundary="imagedata"
--imagedata
Content-Type: image.jpg" alt="base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)" border="0" />
- 常见的浏览器兼容性测试工具
- 如何检查css 兼容性(CSS浏览器兼容性常见问题总结大全推荐)
- serv-u兼容性(解决IIS和Serv-U冲突的问题[Serv-U 7.0])
- 前端pc适配方案(前端兼容性问题总结PC端)
- html5单选项怎么调选项间距(html5实现输入框fixed定位在屏幕最底部兼容性)
- placeholder兼容性
- base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
- 通过体温就能为智能手表充电 原来是用NASA在空间站用的黑科技(通过体温就能为智能手表充电)
- 智能手表兼容Windows和Android 无需充电挑战苹果(智能手表兼容Windows和Android)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
热门推荐
- vue项目有element插件(Vue Element前端应用开发之前端API接口的封装)
- html转ppt(HTML里显示pdf、word、xls、ppt的方法示例)
- SQLServer获取临时表所有列名或是否存在指定列名的方法(SQLServer获取临时表所有列名或是否存在指定列名的方法)
- rocketmq安装linux(docker安装rocketMQ教程最详细)
- dedecms在哪添加产品目录(dedecms的sql标签中传入参数的方法)
- 阿里云rds需要读写分离吗(为什么使用阿里云RDS?使用RDS有什么好处?)
- python抽奖代码教程(python实现抽奖小程序)
- sqlserver怎么调成混合登录(如何快速删掉SQL Server登录时登录名下拉列表框中的选项)
- mongodb容器化部署映射端口访问(Docker 部署 MongoDB容器的方法)
- angular使用方法(Angular环境搭建及简单体验小结)