兼容ie8总结
最近做了个兼容ie8的项目,把遇到的一些坑总结一下,欢迎大神指正,共勉。
一. js相关
1. 关于库的引用
jquery只能引用1.x的版本,swiper只能引用2.x的版本。
2. 动态生成的dom, $().click 方法为其添加点击事件,需用on 或 live 方法进行绑定。
3. ie8不兼容forEach, 可用如下代码进行兼容
if ( !Array.prototype.forEach ) {
Array.prototype.forEach = function forEach( callback, thisArg ) {
var T, k;
if ( this == null ) {
throw new TypeError( "this is null or not defined" );
}
var O = Object(this);
var len = O.length >>> 0;
if ( typeof callback !== "function" ) {
throw new TypeError( callback + " is not a function" );
}
if ( arguments.length > 1 ) {
T = thisArg;
}
k = 0;
while( k < len ) {
var kValue;
if ( k in O ) {
kValue = O[ k ];
callback.call( T, kValue, k, O );
}
k++;
}
};
}
4. ie8不兼容indexOf, 可用如下代码兼容
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
5. 获取target 对象应该这样获取
function getTarget(event) {
var e = window.event||event;
var target= e.target || e.srcElement;
}
6. 下载文件可用如下方式下载
var $downloadFileForm = $('<form class="hidden" enctype="multipart/form-data" method="post" action="url"></form>');
$downloadFileForm.attr({
}).appendTo('body');
$downloadFileForm[0].submit();
$downloadFileForm.remove();
7. 由于ie8不兼容FormData对象,需要通过表单提交的方式上传文件, 并且使用jquery.fom.js 库的ajaxSubmit 方法提交。
8. ie8 不支持placeholder,建议自己手写一个div定位到input上进行模拟,网上搜到解决方案有时候会定位出现问题。
9. 阻止冒泡点击事件
function click(e) {
e=window.event||e;
if(document.all){
e.cancelBubble=true;
}else{
e.stopPropagation();
}
}
二、css 相关
1. 背景图片平铺问题,ie8 不支持background-size属性,所以需要滤镜解决
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='url', sizingMethod = 'scale');
2. 要使用css3 的相关属性,可引入ie-css3.htc 文件,引用方式如下,路径相对于html文件而不是css文件
behavior: url(ie-css3.htc);
3. ie8 不支持nth-child 伪类, 可用如下方式代替,不过比较繁琐
ul:first-child + ul
ul:first-child + ul + ul + ul
ul:first-child + ul + ul + ul + ul + ul
4. ie8 不支持rgba, 有半透明背景需求的可以使用opacity 代替,代码如下
opacity: 0.7;
-moz-opacity:0.7;
-khtml-opacity: 0.7;
filter:alpha(opacity=70);
先写到这里,想到了再补充。。
兼容ie8总结的更多相关文章
- 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能
当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.ap ...
- 如何使用videojs兼容IE8浏览器
需要在服务器下运行 首先我们需要下载videojs包 https://github.com/videojs/video.js/releases 这里简单写了一个小栗子 <!DOCTYPE htm ...
- jQuery validate兼容IE8写法
最近做项目的时候遇到一个validate插件在IE8下面点击submit按钮没有执行检查的BUG 在chrome和FF,还有IE9以上都可以.百度了好多文章都没有找到解决方法,后面自己测试找到了问题. ...
- 兼容ie8 rgba()用法
今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1); 但是要兼容到 ...
- 【转】让Bootstrap 3兼容IE8浏览器
FROM : http://www.ijophy.com/2014/05/bootstrap3-compatible-with-ie8.html 最近在研究Bootstrap(官方,Github)这个 ...
- 让Bootstrap 3兼容IE8浏览器
最近在研究Bootstrap(官方,Github)这个优秀的前端框架,Bootstrap最开始是Twitter团队内部的一个前端框架,所谓前端框架就是一个CSS/HTML框架,框架里面有下拉菜单.按钮 ...
- css样式设置图片半透明度,兼容IE8,火狐
关于背景颜色透明的兼容浏览器的问题,一直是个问题,我所写的兼容IE8,和火狐,说是兼容所有浏览器我就没有测试,有兴趣的朋友可以自己测试下吧. background-color:white;filter ...
- 兼容ie8 rgba()用法 滤镜filter的用法
原文 http://blog.csdn.net/westernranger/article/details/40836861 今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不 ...
- bootstrap3 兼容IE8浏览器
近期在使用bootstrap这个优秀的前端框架,这个框架非常强大,框架里面有下拉菜单.按钮组.按钮下拉菜单.导航.导航条.面包屑.分页.排版.缩略图.警告对话框.进度条.媒体对象等,bootstrap ...
- Bootstrap 3兼容IE8浏览器(转)
Bootstrap是一个响应式的布局,你可以在宽屏电脑.普通电脑,平板电脑,手机上都得到非常优秀的布局体验.这种响应式的布局正是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分 ...
随机推荐
- 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'goodsController' defined in file [D:\eclipse\eclipse-space\pinyougou_parent\pinyou
由于错误太宽,没法截取完整的,所以不怎么连贯,但是不影响错误的解决. 这个错误是因为service无法自动注入.显示嵌套状态异常. 我就查看了一下我的坐标和配置文件,配置文件的路径和访问地址都是正确的 ...
- Java+Selenium向文本框输入内容以后模仿键盘的"ENTRY"
在自动化测试中我们避免不了要模仿一些键盘上按钮的操作,普通的字母,数字,特殊符号,这些都是很简单的,有时候我们也会模仿"SHIFT","ALT","C ...
- docsis cm 上线过程(bigwhite)
扫描与同步下行(SYNC消息) 获取上行参数(UCD消息.MAP消息) 通过测距完成时间偏移等的调整(RNG消息) 设备类型鉴定(可选,DCI消息) 建立IP通道(DHCP) 同步系统时间(TOD ...
- Mac学习
碰到问题可以多查看帮助文件 快速上手 1,自动隐藏顶端菜单栏: 通用-> 外观 menu bar 2,docker 程序坞,左边为应用程序,右边是文件或者文件夹,38线 3,option -&g ...
- csv impor export with mysql
server-side:SELECT id,tutorialId,tutorialName,ucreatelink,structureVersion FROM base_courseINTO OUTF ...
- js考察this,作用域链和闭包
在严格版中的默认的this不再是window,而是undefined. 先看两个例子 example one var num = 20; var obj = { num: 30, fn: (funct ...
- Linux升级python3之后yum不能正常使用解决方法一:重新配置yum源
[转]linux下yum安装及配置 分步阅读 公司使用的是linux搭建服务器,linux安装软件能够使用yum安装依赖包是一件非常简单而幸福的事情,所以这里简单介绍一下linux安装yum源流程和操 ...
- python做数据驱动
python代码如下: import unittestfrom openpyxl import load_workbookfrom openpyxl.styles import Fontfrom op ...
- Python---Models 模型
#Models 模型 数据结构 + 算法 = 程序 ---> URL ---> VIEW ---> Temple ---> DB:分类---关系 Teacher Stude ...
- Python从入坑到放弃!
Python基础 python基础 python基础之 while 逻辑运算符 格式化输出等 python基础之 基本数据类型,str方法和for循环 python基础之 列表,元组,字典 pyth ...