细数在兼容ie8过程中碰到的坑,持续更新中

细数在兼容ie8过程中碰到的坑,持续更新中

1.透明度

ie8并不支持rgba来设置透明度,解决方案如下:

css

background: #000000;
filter: alpha(opacity=50) !important;
opacity: .5 !important;

2.placeholder

ie8会将input或者textarea中的placeholder的值认为是当做是value值,导致在数据交互的过程中出现问题

我的解决方案是:先给input或者textarea增加一个自定义属性data-placeholder,其值等于placeholder,然后给input或者textarea增加获取焦点和失去焦点事件操作dom

html

<input type="text" data-placeholder="请输入姓名" />

js

//解决ie8  placehold问题

function FocusChangeText(ele) {
    var changeText = "";
    changeText = $(ele).val();
    if (changeText == $(ele).attr("data-placeholder")) {
        $(ele).val("");
    }
}
function BlurChangeText(ele) {
    var changeText = "";
    changeText = $(ele).val();
    if (changeText == "") {
        $(ele).val($(ele).attr("data-placeholder")).addClass("text-grey").removeClass("black");
    } else {
        $(ele).removeClass("text-grey").addClass("black");
    }
}

3.trim()

ie8不支持trim()方法,但是支持ltrim()和rtrim(),解决方法:

js

 //去左空格; 
function ltrim(s){ 
 return s.replace(/(^/s*)/g, "");
} 
//去右空格; 
function rtrim(s){ 
  return s.replace(/(/s*$)/g, "");
} 
//去左右空格; 
function trim(s){ 
    //s.replace(/(^/s*)|(/s*$)/g, "");
 return rtrim(ltrim(s)); 
}

4.console.log()

ie8不支持console.log(),解决方法:

js

//解决 IE8、IE9 不支持 console 问题
  window.console = window.console || (function () {
    var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile
    = c.clear = c.exception = c.trace = c.assert = function () { };
    return c;
  })();

5.display

ie8在display的兼容性上支持的并不是很好,例如flex、inline-flex等,建议在书写时使用真正的ie8浏览器测试,而不是360的仿真模式

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Let dreams fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值