IE和移动端兼容性

IE和移动端兼容性

1. IE8及以下,不支持document.getElementsByName来获取元素,所以想要兼容IE8,建议使用getElementById来获取

2. section是H5中新加的元素,在IE8下面不能用,会把section里面的内容解析到外面,这样样式会有错乱,所以,建议使用div来包裹内容

3. 判断是否是移动设备

if ( /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|micromessenger|ucbrowser/i.test( userAgent.toLowerCase())){
//是移动端的处理
            var _bodyDoc = document.getElementById('body_main');
            domOption.removeClass(_bodyDoc,'main_pc')
        }

4.判断是IE浏览器

 // 判断是否是IE
 if (navigator.userAgent.indexOf("MSIE")!=-1){
        alert(opts.tips);
  }else{
        dialog.tips(opts.tips);
  }

5.兼容IE的获取事件方式

在IE下面在元素上直接添加onclick,onchange是不支持的
if(window.addEventListener){
            //添加获取验证码点击事件
            _formBtnCode.addEventListener('click',getCode);
            _formBtnLogin.addEventListener('click',login);
            _formSel.addEventListener('change',function(){
                areaCodeSel(_formSel);
            })
        }else{
            //添加立即上网点击事件
            _formBtnCode.attachEvent('onclick',getCode); 
            _formBtnLogin.attachEvent('onclick',login);
            _formSel.attachEvent('onchange',function(){
                areaCodeSel(_formSel);
            })
        }

5.-webkit-tap-highlight-color

在iphone手机上面点击div,span等时会出现闪一下的情况,添加该属性即可
span,i,div,ul,li
{ -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color:transparent; }

6.console对象在IE8下的问题

在ie8下console.log方法或对象不存在,解决办法:
 1、注释掉该代码
 2、或者加入如下代码
   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; 
   })(); 

7.meta标签

    一、天猫

    <title>天猫触屏版</title>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <meta charset="utf-8">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="telephone=no" name="format-detection">

    二、淘宝

    <title>淘宝网触屏版</title>
    <meta charset="utf-8">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="yes" name="apple-touch-fullscreen">
    <meta content="telephone=no" name="format-detection">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta property="wb:webmaster" content="c51923015ca19eb1">
    <meta name="author" content="m.taobao.com">
    <meta name="copyright" content="Copyright ©m.taobao.com 版权所有">
    <meta name="revisit-after" content="1 days">
    <meta name="keywords" content="">
    <meta name="description" content="">

    三、京东

    <title> 京东 - 手机版 </title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;">
    <meta name="format-detection" content="telephone=no">
    <meta name="Keywords" content="手机购物,WAP商城,日用百货,3C家电,汽车用品">
    <meta name="description" content="京东手机版提供了包括数码、家电、手机、电脑配件、网络产品、日用百货等数万种商品,手机快捷购物,就上京东手机版。">

    四、网易

    <title>手机网易网</title>
    <meta charset="UTF-8">
    <meta content="width=device-width,user-scalable=no" name="viewport">
    <meta name="apple-itunes-app" content="app-id=425349261">
    <meta name="apple-mobile-web-app-capable" content="yes">

    五、百度

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <meta name="format-detection" content="telephone=no">

    meta指元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。
    手机端特有的有哪些?
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="telephone=no" name="format-detection">
    第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;
    width - viewport的宽度 height - viewport的高度
    initial-scale - 初始的缩放比例
    minimum-scale - 允许用户缩放到的最小比例
    maximum-scale - 允许用户缩放到的最大比例
    user-scalable - 用户是否可以手动缩放
    第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;
    第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;
    在web app应用下状态条(屏幕顶部条)的颜色;
    默认值为default(白色),可以定为black(黑色)和black-translucent(灰色半透明)。
    注意:若值为“black-translucent”将会占据页面px位置,浮在页面上方(会覆盖页面20px高度–iphone4和itouch4的Retina屏幕为40px)。
    第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码。

另附meta标签其它常用的属性用法解析:

1、<meta name="format-detection"/> 的用处

在手机上浏览时,该标签用于指定是否将网页内容中的手机号码显示为拨号的超链接。
在 iPhone 上默认值是:
<meta name="format-detection" content="telephone=yes"/>
如果你不希望手机自动将网页中的电话号码显示为拨号的超链接,那么可以这样写:
<meta name="format-detection" content="telephone=no"/>



2.<meta name="apple-mobile-web-app-capable"/>的用处

<meta name=”apple-mobile-web-app-capable” content=”yes” />

这apple-mobile-web-app-capable的作用就是删除默认的苹果工具栏和菜单栏。content有两个值”yes”和”no”,当我们需要显示工具栏和菜单栏时,这个行meta就不用加了,默认就是显示。



3.<meta name="apple-mobile-web-app-status-bar-style"/>的用处
作用是控制状态栏显示样式:

<meta name=”apple-mobile-web-app-status-bar-style” content=”default” />
<meta name=”apple-mobile-web-app-status-bar-style” content=”black” />
<meta name=”apple-mobile-web-app-status-bar-style” content=”black-translucent” />
default:默认; black:纯黑; black-translucent:半透明灰色

8.javascript获取元素在IE下兼容问题

在IE8及以下,不支持getElementsByClassName(),所以要使用原生的javascript,就尽量使用getElementById,其他的获取元素的效率较低,还是避免使用

你可能感兴趣的:(IE,移动,iPhone,8)