JS兼容性处理

JS兼容性处理

  1. 百度 – 终端适配API

    适合服务器端使用。POST客户端传递的http头信息越多,得到的适配信息越准确。百度返回的数据为:

    正确情况:
    {
        device_type :/*1:手机2:pc*/
        os:/*操作系统*/
        os_version:/*操作系统版本*/
        browser:/*浏览器*/
        browser_version:/*浏览器版本*/
        model:/*机型*/
        vendor:/*厂商*/
        tn: /*wml|middle|touch|utouch|iphone*/
    }

    服务器端代码可根据返回的值,来进行自定义判断,该给客户端返回何种数据。
    为防止过度依赖百度判断,可本地缓存每次客户端请求头数据,和百度返回的值,建立一个KEY、VALUE表,则某种类型客户端只要请求一次百度,本地自己的服务器即可自己判断了。

  2. 一段巧妙判断IE浏览器版本的js代码

    只有一行代码,只针对IE起作用,而且考虑了IE用户自选渲染模式、怪癖模式、支持IE5、6、7、8、9及10。

    <html>
    <script>
    var isIE=false;
    /*@cc_on isIE=(document.documentMode||( document.compatMode == "CSS1Compat" ? "XMLHttpRequest" in window ? @_jscript_version*10-50 : 6 : 5)) @*/
    alert(isIE);//非IE弹出False,IE则弹出5到10版本值
    </script>
    </html>

    最短判断是否IE的代码:

    if(-[1,]){
    alert("非IE");
    }else{
    alert("IE");
    }

    经过测试:IE9、IE10弹出“非IE”。

  3. 实际编码中,更多的将是采用“对象/特征”来判断浏览器能力的方式
    //添加事件工具函数
    function addEvent(el,type,handle){
        if(el.addEventListener){
         //for standard browses
            el.addEventListener(type,handle,false);
        }else if(el.attachEvent){
         //for IE
            el.attachEvent("on"+event,handle);
        }else{
         //other
            el["on"+type]=handle;
        }
    }

     

转载于:https://www.cnblogs.com/AsionTang/p/3330948.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设置java编译级别

    设置java编译级别右键项目—->properties—–>JavaComplier—->javaCompilancelevel
    —->1.6

    2022年6月1日
    44
  • java基本数据类型总结

    java基本数据类型总结详解一、八种基本数据类型常识1.1、基本常识表对于上图有以下几点需要注意:java八种基本数据类型分为四类八种,四类分别为整型、浮点型、布尔型、字符型;八种分别为byte、short、int、long、float、double、boolean、char;java八种基本数据类型的字节数:分别为1、2、4、8个字节;1字节(byte、boolean)、2字节(short、char)、4字节(int、float)、8字节(long、double);整数的默认类型为int,浮点数的默认类型为do

    2022年7月7日
    22
  • pycharm删除的文件 找回_pycharm重命名

    pycharm删除的文件 找回_pycharm重命名1、打开pycharm后,点击项目文件夹右键2、在弹出的菜单中,点击LocalHistory,会自动出现子菜单,点击showhistoy功能;3、弹出本地历史窗口后,左侧显示删除的文件列表及信息(文件名及删除时间;4、选中需要找回的文件后,点击右键,选择Revertselection…

    2022年8月26日
    10
  • 自动化运维架构(开发)

    自动化运维架构(开发)一、DevOps定义1.DevOps是“开发”和“运维”的缩写。2.DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通3.强调整个组织的合作以及交付和基础设施变更自动化,从而实现持续集成、持续部署和持续交付二、DevOps持续交付环1.我们把开发交付划分为:计划–>编码–>构建–>测试–>…

    2022年7月17日
    21
  • iOS超全开源框架、项目和学习资料汇总–数据库、缓存处理、图像浏览、摄像照相视频音频篇…

    iOS超全开源框架、项目和学习资料汇总–数据库、缓存处理、图像浏览、摄像照相视频音频篇…

    2022年3月1日
    70
  • 退出卸载360、QAX 天擎,无需密码

    退出卸载360、QAX 天擎,无需密码退出卸载360、QAX天擎,无需密码天擎企业版,退出和卸载是需要管理员密码进入360天擎,点击设置=>防护中心=>自我保护功能,去掉勾选,确认\360Safe\EntClient\conf\EntBase.dat目录目录查找:在桌面右下角找到天擎应用程序右键,进入程序安装位置,即可进入安装目录EntBase.dat文件删除uipassqtpass两行=后面的两个字符串即可关闭退出卸载密码。这里如果没有权限无法修改,先将EntBase.dat复制到其他文件夹(

    2022年9月24日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号