`

IE8 的兼容性问题总结

阅读更多

在IE8中,下面的代码报错:

$('#invoiceListDot').text(htmlTemplate);



 

说明:invoiceListDot 是一个script标签 

 <script id="invoiceListDot" type="text/x-dot-template">
                {{? it.invoiceInfoDtos}}
                {{ for(var prop=0;prop
                <it.invoiceInfoDtos.length
                        ; prop++){ }}
                        {{? it.invoiceInfoDtos[prop]}}
                <div class="{{ if(prop==0 && it.create==true){}}invoice-infor {{ }else {}}no-invoice{{ }}}"
                     data-index="{{= prop }}">
                    <span class="no-ivoice-icon"></span>
                    <span>普通发票</span>
                    <span class="ivo-margin invoiceType">{{= it.invoiceInfoDtos[prop].content }}</span>
                    <span class="ivo-margin invoiceCompany">{{= it.invoiceInfoDtos[prop].title }}</span>
                    <span class="ivo-margin invoiceAddress">{{= it.invoiceInfoDtos[prop].address }}</span>
                    <span class="ivo-margin invoicePerson">{{= it.invoiceInfoDtos[prop].receiver }}</span>
                    <span class="ivo-margin invoicePhone">{{= it.invoiceInfoDtos[prop].phone }}</span>
                </div>
                {{?}}
                {{ } }}
                {{?}}
            </script>

 改为如下代码也报错:

$('#invoiceListDot').html(htmlTemplate);

 

这是IE8的兼容性问题.

解决方法:

在js中判断浏览器类型,若是IE8,则执行

$('#invoiceListDot').innerHTML = htmlTemplate;

整个逻辑判断如下:

 if (getBrowserVersion.isIE8) {
        $('#invoiceListDot').innerHTML = htmlTemplate;
    } else {
        $('#invoiceListDot').text(htmlTemplate);
    }

  

 

 获取script标签的内容的时候:

 

 var tmplate = $invoiceListDot.text();//IE8中返回空字符串
                    if (!tmplate) {
                        console.log('$invoiceListDot.text() return null');
                        tmplate = $invoiceListDot.html();
                    }

 

 

 

new Date('2015-08-05 23:12:20')

在chrome中,下面的语法是正确的:

 但是在IE8中不支持,所以增加了判断:

if (typeof  window.willEndTime == 'string') {//IE中
        productInfo2.willEndTime = window.willEndTime;
    } else {
        productInfo2.willEndTime = new Date(window.willEndTime).format("yyyy-MM-dd");
    }

 

 那么如何判断浏览器是IE8呢?

 

/***
 * get browser type and browser version and language
 when page open,the function will be executed automaticly
 * @param write22
 * @returns {{systemLanguage,userLanguage,ver}}
 */
getBrowserVersion = (function (write22) {
    var browser = {};
//    console.dir(navigator);
    var userAgent = navigator.userAgent.toLowerCase();
    /*for(osvId in navigator){
     var value222=navigator[osvId];
     document.writeln(osvId+":&nbsp;"+value222+'<br>');
     }*/
    var lang22 = navigator.language;
//    document.writeln(userAgent+'<br>');
//    document.writeln(navigator.appCodeName+'<br>');
    var s;
    (s = userAgent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = userAgent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = userAgent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] :
        (s = userAgent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = userAgent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;
    var version = "";
    if (browser.ie) {
        version = browser.ie;
        if (write22 && write22 != false && write22 != 'false') {
            document.writeln('IE<br>');
        }
        if (!browser.lang || browser.lang == undefined) {
            lang22 = navigator.browserLanguage;
            browser.systemLanguage = navigator.systemLanguage;
            browser.userLanguage = navigator.userLanguage;
        }
    }
    else if (browser.firefox) {
        version = browser.firefox;
        browser.mozilla = browser.firefox;
        if (write22 && write22 != false && write22 != 'false') {
            document.writeln('firefox<br>');
        }
    }
    else if (browser.chrome) {
        version = browser.chrome;
        if (write22 && write22 != false && write22 != 'false') {
            document.writeln('chrome<br>');
        }
    }
    else if (browser.opera) {
        version = browser.opera;
        if (write22 && write22 != false && write22 != 'false') {
            document.writeln('opera<br>');
        }
    }
    else if (browser.safari) {
        version = browser.safari;
        if (write22 && write22 != false && write22 != 'false') {
            document.writeln('Safari<br>');
        }
    }
    else {
        version = 'unknown browser';
    }
    browser.ver = version;
    if (lang22 && lang22 != undefined) {
        browser.lang = lang22.toLowerCase();
    }
    browser.isIE8 = (browser.ie && (version === '8.0' || version === '8'));
    return browser;
})();

 上述脚本见附件

 使用方法:

f (getBrowserVersion.isIE8) {
        $('#invoiceListDot').innerHTML = htmlTemplate;
    } else {
        $('#invoiceListDot').text(htmlTemplate);
    }

 

 Ie识别不了有空格的json

 比如

{

"path":"huang wei"

}

 

IE7中动态创建表格时,必须要创建tbody,否则表格不显示

var tb = put('table.service');
if (BrowserVersion.isIE7 || BrowserVersion.isIE6) {
                tb=put(tb,'tbody');
             }

 

 

  • 大小: 30.6 KB
  • 大小: 40 KB
  • 大小: 9.9 KB
  • 大小: 21 KB
分享到:
评论
1 楼 hw1287789687 2015-08-07  
	/**
	 * 字符串转时间(yyyy-MM-dd HH:mm:ss)
	 * result (分钟)
	 */
	stringToDate : function(fDate){
		var fullDate = fDate.split(" ")[0].split("-");
		var fullTime = fDate.split(" ")[1].split(":");

		return new Date(fullDate[0], fullDate[1]-1, fullDate[2], (fullTime[0] != null ? fullTime[0] : 0), (fullTime[1] != null ? fullTime[1] : 0), (fullTime[2] != null ? fullTime[2] : 0));
	},

相关推荐

    IE6,IE7,IE8兼容性问题

    ### IE6, IE7, IE8 兼容性问题详解 #### 一、引言 在Web开发过程中,确保网站能够在各种不同的浏览器中正常显示是非常重要的。尤其是在早期的Web时代,Internet Explorer(简称IE)系列浏览器占据着重要的市场份额...

    百度编辑器1.4.3.3版本IE8兼容性问题

    总结来说,解决百度编辑器在IE8的兼容性问题,需要理解浏览器的差异,针对性地修改代码或引入兼容库。同时,持续关注并更新编辑器版本,以获得对旧浏览器更好的支持。在开发过程中,应始终考虑多浏览器兼容性,以...

    FF和IE的兼容性问题总结

    FF和IE的兼容性问题一直是前端开发者面临的重要挑战。这些浏览器在处理JavaScript、DOM操作以及事件处理等方面的差异,可能导致代码在不同浏览器上表现不一致。以下是对这些兼容性问题的详细解析和解决策略: 1. **...

    判断IE8兼容性视图工作模式

    总结来说,识别IE8的兼容性视图模式是解决浏览器兼容性问题的关键步骤。通过JavaScript的`document.documentMode`属性,我们可以检测到浏览器的工作模式并据此调整代码策略,确保网页在不同环境下都能良好运行。然而...

    IE兼容性解决IE兼容性解决IE兼容性解决IE兼容性解决

    总结,解决IE兼容性问题需要理解浏览器的工作原理,熟练运用各种技巧和工具。在开发过程中,遵循渐进增强原则,利用条件注释、CSS hack、JavaScript库等方式,可以有效地应对IE8及以下版本的兼容性挑战。尽管现代...

    IE7.JS解决IE兼容性问题方法

    总结来说,"IE7.JS解决IE兼容性问题方法" 这个主题涵盖了解决旧版IE浏览器兼容性问题的技术和策略,通过使用类似IE7.JS这样的库,开发者可以减少在不同版本IE间适配的工作量,提高网站的用户体验。

    IE8兼容模式的设置

    这些设置有助于确保大多数网站能够以预期的方式呈现,同时避免因兼容性问题而导致的布局错乱等现象。 ##### 3. 单个页面兼容性设置 当遇到某个页面显示异常时,可以尝试以下步骤进行调整: - 按下F12快捷键,或...

    IE兼容性总结

    本文档将根据提供的部分内容,详细总结在进行IE兼容性优化时的一些常见问题及解决方案。 #### 子页面的设置:secpagecss.css 1. **元素ID(#left_side)的右边框问题** - **问题描述**:元素ID为`#left_side`的...

    终极解决kindeditor IE11兼容性看不到弹出框 360浏览器兼容性问题

    总结来说,解决KindEditor在IE11和360浏览器上的弹出框兼容性问题,需要对浏览器的特性有深入理解,同时熟悉JavaScript和CSS的跨浏览器兼容性策略。通过更新库、使用CSS hack、调试JavaScript代码以及检查第三方库的...

    IE与FF脚本兼容性问题

    ### IE与FF脚本兼容性问题详解 #### 一、概述 随着Web技术的发展,不同浏览器之间的兼容性问题一直是前端开发者关注的重点。本文主要探讨Internet Explorer(简称IE)与Mozilla Firefox(简称FF或MF)之间在...

    JS中出现的兼容性问题的总结.pdf

    接下来,将详细总结一些在JS中常见的兼容性问题及其解决方法。 1. 获取行外样式(CSS)问题: 通常情况下,我们可以通过JavaScript的style属性获取元素的内联样式,但对于行外样式(即通过CSS样式表设置的样式),...

    IE兼容性测试工具

    总结来说,IETester是Web开发者处理IE兼容性问题的得力助手,通过其强大的模拟和调试功能,可以有效减少因浏览器差异导致的问题,提高项目的质量和用户体验。然而,随着技术的发展,开发者也需要关注跨浏览器兼容性...

    IE.JS解决IE兼容性问题方法汇总

    **IE.JS** 是一个专门用来解决Internet Explorer(尤其是IE5、IE6)浏览器兼容性问题的JavaScript库。它的核心目标是让这些老旧版本的IE能够更好地遵循W3C的标准,提升对CSS2、CSS3选择器的支持,并修复HTML和CSS的...

    ie6,ie7兼容性总结

    在Web开发过程中,特别是针对早期浏览器如Internet Explorer 6 (IE6) 和 Internet Explorer 7 (IE7) 的支持时,开发者经常会遇到一系列兼容性问题。这些问题往往源自于不同浏览器对CSS规范的不同实现方式。本文将...

    javascript解决浏览器兼容性问题

    本文将详细介绍如何使用JavaScript解决浏览器兼容性问题,特别是针对XMLHttpRequest对象的创建及对不同版本IE浏览器的识别。 #### 二、XMLHttpRequest对象的兼容性创建 XMLHttpRequest对象是用于执行异步请求的...

    个人CSS设计兼容性问题总结教程

    本文将根据提供的内容,详细讲解一些常见的CSS设计在不同浏览器,特别是IE6-8中的兼容性问题及解决方案。 首先,我们关注的是按钮的兼容性问题。在IE6中,按钮元素可能会对后续元素产生额外影响,因此我们需要初始...

    IE、火狐兼容性问题

    ### IE与火狐浏览器兼容性问题详解 #### 一、概述 随着Web技术的不断发展,浏览器作为用户访问互联网的重要工具之一,在不同的版本间存在着一定的差异性。这些差异性导致了在开发网页应用时,需要特别关注不同...

Global site tag (gtag.js) - Google Analytics