在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+": "+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'); }
相关推荐
### IE6, IE7, IE8 兼容性问题详解 #### 一、引言 在Web开发过程中,确保网站能够在各种不同的浏览器中正常显示是非常重要的。尤其是在早期的Web时代,Internet Explorer(简称IE)系列浏览器占据着重要的市场份额...
总结来说,解决百度编辑器在IE8的兼容性问题,需要理解浏览器的差异,针对性地修改代码或引入兼容库。同时,持续关注并更新编辑器版本,以获得对旧浏览器更好的支持。在开发过程中,应始终考虑多浏览器兼容性,以...
FF和IE的兼容性问题一直是前端开发者面临的重要挑战。这些浏览器在处理JavaScript、DOM操作以及事件处理等方面的差异,可能导致代码在不同浏览器上表现不一致。以下是对这些兼容性问题的详细解析和解决策略: 1. **...
总结来说,识别IE8的兼容性视图模式是解决浏览器兼容性问题的关键步骤。通过JavaScript的`document.documentMode`属性,我们可以检测到浏览器的工作模式并据此调整代码策略,确保网页在不同环境下都能良好运行。然而...
总结,解决IE兼容性问题需要理解浏览器的工作原理,熟练运用各种技巧和工具。在开发过程中,遵循渐进增强原则,利用条件注释、CSS hack、JavaScript库等方式,可以有效地应对IE8及以下版本的兼容性挑战。尽管现代...
总结来说,"IE7.JS解决IE兼容性问题方法" 这个主题涵盖了解决旧版IE浏览器兼容性问题的技术和策略,通过使用类似IE7.JS这样的库,开发者可以减少在不同版本IE间适配的工作量,提高网站的用户体验。
这些设置有助于确保大多数网站能够以预期的方式呈现,同时避免因兼容性问题而导致的布局错乱等现象。 ##### 3. 单个页面兼容性设置 当遇到某个页面显示异常时,可以尝试以下步骤进行调整: - 按下F12快捷键,或...
本文档将根据提供的部分内容,详细总结在进行IE兼容性优化时的一些常见问题及解决方案。 #### 子页面的设置:secpagecss.css 1. **元素ID(#left_side)的右边框问题** - **问题描述**:元素ID为`#left_side`的...
总结来说,解决KindEditor在IE11和360浏览器上的弹出框兼容性问题,需要对浏览器的特性有深入理解,同时熟悉JavaScript和CSS的跨浏览器兼容性策略。通过更新库、使用CSS hack、调试JavaScript代码以及检查第三方库的...
### IE与FF脚本兼容性问题详解 #### 一、概述 随着Web技术的发展,不同浏览器之间的兼容性问题一直是前端开发者关注的重点。本文主要探讨Internet Explorer(简称IE)与Mozilla Firefox(简称FF或MF)之间在...
接下来,将详细总结一些在JS中常见的兼容性问题及其解决方法。 1. 获取行外样式(CSS)问题: 通常情况下,我们可以通过JavaScript的style属性获取元素的内联样式,但对于行外样式(即通过CSS样式表设置的样式),...
总结来说,IETester是Web开发者处理IE兼容性问题的得力助手,通过其强大的模拟和调试功能,可以有效减少因浏览器差异导致的问题,提高项目的质量和用户体验。然而,随着技术的发展,开发者也需要关注跨浏览器兼容性...
**IE.JS** 是一个专门用来解决Internet Explorer(尤其是IE5、IE6)浏览器兼容性问题的JavaScript库。它的核心目标是让这些老旧版本的IE能够更好地遵循W3C的标准,提升对CSS2、CSS3选择器的支持,并修复HTML和CSS的...
在Web开发过程中,特别是针对早期浏览器如Internet Explorer 6 (IE6) 和 Internet Explorer 7 (IE7) 的支持时,开发者经常会遇到一系列兼容性问题。这些问题往往源自于不同浏览器对CSS规范的不同实现方式。本文将...
本文将详细介绍如何使用JavaScript解决浏览器兼容性问题,特别是针对XMLHttpRequest对象的创建及对不同版本IE浏览器的识别。 #### 二、XMLHttpRequest对象的兼容性创建 XMLHttpRequest对象是用于执行异步请求的...
本文将根据提供的内容,详细讲解一些常见的CSS设计在不同浏览器,特别是IE6-8中的兼容性问题及解决方案。 首先,我们关注的是按钮的兼容性问题。在IE6中,按钮元素可能会对后续元素产生额外影响,因此我们需要初始...
### IE与火狐浏览器兼容性问题详解 #### 一、概述 随着Web技术的不断发展,浏览器作为用户访问互联网的重要工具之一,在不同的版本间存在着一定的差异性。这些差异性导致了在开发网页应用时,需要特别关注不同...