• IE9 placeholder 不兼容的解决


    坑爹的IE9-,真的是够够的了,不过公司不要求兼容这个玩意了,自己觉得兼容这个鬼还是挺有挑战性的,自己也碰到不少难题,一个个解决。

    css:

    .placeholderColor { color : #999; }
    

     

    先判断浏览器类型(仅判断IE,如果需要请自行查找,线上很多):

        function myBrowser(){
               var userAgent = navigator.userAgent;
               var isOpera = userAgent.indexOf("Opera") > -1;
            var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
            if (isIE) {
                var IE5 = IE55 = IE6 = IE7 = IE8 = IE9 = IE10 = IE11=false;
                var reIE = new RegExp("MSIE (\d+\.\d+);");
                reIE.test(userAgent);
                var fIEVersion = parseFloat(RegExp["$1"]);
                IE55 = fIEVersion == 5.5;
                IE6 = fIEVersion == 6.0;
                IE7 = fIEVersion == 7.0;
                IE8 = fIEVersion == 8.0;
                IE9 = fIEVersion == 9.0;
                IE10 = fIEVersion == 10.0;
                IE11 = fIEVersion == 11.0;
                
                if (IE55) {
                    return "IE55";
                }
                if (IE6) {
                    return "IE6";
                }
                if (IE7) {
                    return "IE7";
                }
                if (IE8) {
                    return "IE8";
                }
                if (IE9) {
                    return "IE9";
                }
            }
        }

    下面是placeholder的修复函数:

    function fix_ie_placeholder(){
            $("[placeholder]").each(function(){
                var el = $(this);
                var placeholder = el.attr("placeholder");
                if(el.prop("type")=="password")
                {
                    el.focus(function ()
                    {
                        $(this).prop("type","password");
                        if($(this).val() == $(this).attr("placeholder"))
                        {
                            $(this).val('').removeClass("placeholderColor");
                        }
                    }).blur(function ()
                    {
                        if($(this).val()=='')
                        {
                            $(this).prop("type","text");
                            $(this).val($(this).attr("placeholder")).addClass("placeholderColor");
                        }
                    }).blur();
                    
                    if(el.val()==''||el.val()==el.attr("placeholder"))
                    {
                        el.rop("type","text");
                        el.val($(this).attr("placeholder")).addClass("placeholderColor");
                    }
                }
                else 
                {
                    el.focus(function ()
                    {
                        if($(this).val() == $(this).attr("placeholder"))
                        {
                            $(this).val('').removeClass("placeholderColor");
                        }
                    }).blur(function ()
                    {
                        if($(this).val()=='')
                        {
                            $(this).val($(this).attr("placeholder")).addClass("placeholderColor");
                        }
                    });
                    
                    if(el.val()==''||el.val()==el.attr("placeholder"))
                    {
                        el.val($(this).attr("placeholder")).addClass("placeholderColor");
                    }
                }
            });
        };

    如果为IE9,则执行placeholder修复函数:

    if(myBrowser() == "IE9"){
      fix_ie_placeholder();
    }

    OK,试一下吧,应该好用,我自己测试IE9没问题。Happy New Year!

  • 相关阅读:
    SQL点滴34—SQL中的大小写
    js关闭和打开页面
    jquery处理checkbox
    CKeditor 配置使用
    .net4.0中的ClientIDMode
    FCKEditor使用说明
    SQL对Xml字段的操作 拓荒者
    c#中BackGroundWorker控件 拓荒者
    C#中DataGradView控件的常用操作 拓荒者
    JavaScript操作Xml 拓荒者
  • 原文地址:https://www.cnblogs.com/whq920729/p/6306142.html
Copyright © 2020-2023  润新知