zoukankan      html  css  js  c++  java
  • 项目开发中的多浏览器兼容感想

         最近在实习的公司做了一个用户注册管理系统的系统,因为这个小项目是我单独负责的,部署到公司的服务器上,出现了一些浏览器的适配问题。逼到最后,我们降低了用户管理界面的需求,让其只支持火狐和Chorme及其支持它们内核的浏览器。客户注册页面实现了支持IE,火狐,Chrome等主流浏览器。下面谈谈遇到的小坑。

       首先是发ajax请求给后台,我用的最原始的提交方式,最后实现从后台取到一段json填充表格。

    function createXMLHttpRequest()
    {
        var xmlHttp=false;
        if (window.ActiveXObject) {                         //在IE浏览器中创建XMLHttpRequest对象
      try {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e) {
          try {
              xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch(ee) {
        xmlHttp=false;
          }
      }
        } else if (window.XMLHttpRequest) {                //在非IE浏览器中创建XMLHttpRequest对象
      try {
          xmlHttp = new XMLHttpRequest();                      
      } catch(e) {
          xmlHttp=false;
      }
        }
        
        return xmlHttp;
    }

     xmlhttp=createXMLHttpRequest();        //调用创建XMLHttpRequest对象的方法
         xmlhttp.open("post","sm");    //向服务器端发送请求
         xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
         xmlhttp.send(data);

          看来IE的确是个特殊的存在,它是所有前端开发的眼中钉,肉中刺。国内浏览器大多采用奇怪的双内核模式,如360浏览器就采用IE和Chrome双内核,好像到网银支付时自动转换到成IE内核,实在是蜜汁转换。后面还有个bootstrap datetimepicker插件不支持火狐浏览器,后面改了下插件源码:

    将第112行报错处改为this.defaultTimeZone = 'GMT '+(new Date()).getTimezoneOffset()/60;

    实现了日期选择插件多浏览器兼容

    后面还有xmlhttp在服务器端应用send方法出现错误的现象,正在着力解决。

  • 相关阅读:
    怎样做一个优秀的系统分析师
    eBay的架构
    Linux Network Load Balance(Linux下实现负载均衡)
    SNS和互联网,一些可能未必意识到的事
    Web架构设计的几个心得
    开发者不可不知的PHP框架深度解析
    从开发者协议看各SNS开放平台的开放策略
    解剖Twitter:Twitter系统结构分析
    PHP语言的优点及缺点
    大型网站架构不得不考虑的问题
  • 原文地址:https://www.cnblogs.com/shenyuelong/p/5822263.html
Copyright © 2011-2022 走看看