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

Js代码  
  1. $('#invoiceListDot').text(htmlTemplate);

说明:invoiceListDot 是一个script标签

Html代码  
  1. <script id="invoiceListDot" type="text/x-dot-template">
  2. {{? it.invoiceInfoDtos}}
  3. {{ for(var prop=0;prop
  4. <it.invoiceInfoDtos.length
  5. ; prop++){ }}
  6. {{? it.invoiceInfoDtos[prop]}}
  7. <div class="{{ if(prop==0 && it.create==true){}}invoice-infor {{ }else {}}no-invoice{{ }}}"
  8. data-index="{{= prop }}">
  9. <span class="no-ivoice-icon"></span>
  10. <span>普通发票</span>
  11. <span class="ivo-margin invoiceType">{{= it.invoiceInfoDtos[prop].content }}</span>
  12. <span class="ivo-margin invoiceCompany">{{= it.invoiceInfoDtos[prop].title }}</span>
  13. <span class="ivo-margin invoiceAddress">{{= it.invoiceInfoDtos[prop].address }}</span>
  14. <span class="ivo-margin invoicePerson">{{= it.invoiceInfoDtos[prop].receiver }}</span>
  15. <span class="ivo-margin invoicePhone">{{= it.invoiceInfoDtos[prop].phone }}</span>
  16. </div>
  17. {{?}}
  18. {{ } }}
  19. {{?}}
  20. </script>

改为如下代码也报错:

Js代码  
  1. $('#invoiceListDot').html(htmlTemplate);

这是IE8的兼容性问题.

解决方法:

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

Js代码  
  1. $('#invoiceListDot').innerHTML = htmlTemplate;

整个逻辑判断如下:

Js代码  
  1. if (getBrowserVersion.isIE8) {
  2. $('#invoiceListDot').innerHTML = htmlTemplate;
  3. } else {
  4. $('#invoiceListDot').text(htmlTemplate);
  5. }

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

Js代码  
  1. var tmplate = $invoiceListDot.text();//IE8中返回空字符串
  2. if (!tmplate) {
  3. console.log('$invoiceListDot.text() return null');
  4. tmplate = $invoiceListDot.html();
  5. }

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

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

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

Js代码  
  1. if (typeof  window.willEndTime == 'string') {//IE中
  2. productInfo2.willEndTime = window.willEndTime;
  3. } else {
  4. productInfo2.willEndTime = new Date(window.willEndTime).format("yyyy-MM-dd");
  5. }

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

Js代码  
  1. /***
  2. * get browser type and browser version and language
  3. when page open,the function will be executed automaticly
  4. * @param write22
  5. * @returns {{systemLanguage,userLanguage,ver}}
  6. */
  7. getBrowserVersion = (function (write22) {
  8. var browser = {};
  9. //    console.dir(navigator);
  10. var userAgent = navigator.userAgent.toLowerCase();
  11. /*for(osvId in navigator){
  12. var value222=navigator[osvId];
  13. document.writeln(osvId+":&nbsp;"+value222+'<br>');
  14. }*/
  15. var lang22 = navigator.language;
  16. //    document.writeln(userAgent+'<br>');
  17. //    document.writeln(navigator.appCodeName+'<br>');
  18. var s;
  19. (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] :
  20. (s = userAgent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = userAgent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;
  21. var version = "";
  22. if (browser.ie) {
  23. version = browser.ie;
  24. if (write22 && write22 != false && write22 != 'false') {
  25. document.writeln('IE<br>');
  26. }
  27. if (!browser.lang || browser.lang == undefined) {
  28. lang22 = navigator.browserLanguage;
  29. browser.systemLanguage = navigator.systemLanguage;
  30. browser.userLanguage = navigator.userLanguage;
  31. }
  32. }
  33. else if (browser.firefox) {
  34. version = browser.firefox;
  35. browser.mozilla = browser.firefox;
  36. if (write22 && write22 != false && write22 != 'false') {
  37. document.writeln('firefox<br>');
  38. }
  39. }
  40. else if (browser.chrome) {
  41. version = browser.chrome;
  42. if (write22 && write22 != false && write22 != 'false') {
  43. document.writeln('chrome<br>');
  44. }
  45. }
  46. else if (browser.opera) {
  47. version = browser.opera;
  48. if (write22 && write22 != false && write22 != 'false') {
  49. document.writeln('opera<br>');
  50. }
  51. }
  52. else if (browser.safari) {
  53. version = browser.safari;
  54. if (write22 && write22 != false && write22 != 'false') {
  55. document.writeln('Safari<br>');
  56. }
  57. }
  58. else {
  59. version = 'unknown browser';
  60. }
  61. browser.ver = version;
  62. if (lang22 && lang22 != undefined) {
  63. browser.lang = lang22.toLowerCase();
  64. }
  65. browser.isIE8 = (browser.ie && (version === '8.0' || version === '8'));
  66. return browser;
  67. })();

上述脚本见附件

使用方法:

Js代码  
  1. f (getBrowserVersion.isIE8) {
  2. $('#invoiceListDot').innerHTML = htmlTemplate;
  3. } else {
  4. $('#invoiceListDot').text(htmlTemplate);
  5. }

Ie识别不了有空格的json

比如

{

"path":"huang wei"

}

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

Js代码  
  1. var tb = put('table.service');
  2. if (BrowserVersion.isIE7 || BrowserVersion.isIE6) {
  3. tb=put(tb,'tbody');
  4. }

IE8 的兼容性问题总结相关推荐

  1. [问题记录]js将事件写在函数之前解决IE8的兼容性问题

    这是一个三个多选框,分别选择省市县,效果如下 我将cmbProvince.onchange = changeProvince;移动到changeProvince();之前解决IE8的兼容性问题 改变后 ...

  2. ie8兼容性视图对ajax,ie8的兼容性视图设置在哪

    ie8的兼容性视图设置:是在计算机配置页面的Windows组件选项里面. 北京时间2008年3月6日,微软发布了InternetExplorer 8的第一个公开测试版本(beta1).本次测试第一次包 ...

  3. ie8和html5的兼容性,ie8网页兼容性不完全指南

    最近完成了一个项目,前端使用的是bootstrap3.3.7, jquery版本是1.11.1, 须改成兼容ie8,遇到的问题多多,觉得有必要总结一下. 声明:这不是一篇能解决所有ie8兼容问题的文章 ...

  4. html 弹窗 支持ie8,浏览器兼容性的问题、支持IE8、不支持IE6、想解决这个问题、两个都支持、...

    1 /**2 * ymPrompt.js 消息提示组件3 * @author netman8410@163.com4 */5 // IE8透明度解决方案6 (function() {7 if(wind ...

  5. 生成html水印,兼容ie8,ie兼容性问题与解决办法,移动端水印给出的建议

    首先放上两段代码  watermark.js 与其兼容方式扩展  pointer_events_polyfill.js watermark.js  ↓↓ // 水印 (function(waterma ...

  6. placeholder在IE8中兼容性问题解决

    placeholder是HTML5中的一个属性,可以在文本框中设置placeholder属性来显示一些提示性的文字,但对IE10以下的浏览器不支持,下面方法可以让placeholder能够使用在IE1 ...

  7. IE8 透明度兼容性

    FILTER:progid:DXImageTransform.Microsoft.Gradient使用  语法:  filter:progid:DXImageTransform.Microsoft.G ...

  8. 做网站遇到的兼容性问题,包括兼容ie8以下

    1.如果在做网站的过程中用到了jquery,又要兼容低版本的浏览器,尽量用低版本的jquery,而不是最新的,高版本的哦: Jquery从2.x版本开始已经不再进行IE低版本(IE6.IE7.IE8) ...

  9. html字体兼容ie8,IE8 CSS 样式兼容性清单

    最近部门业务网站需要考虑IE8的兼容性,刚好查到MSDN上有IE系列浏览器对CSS兼容性的完整清单,把其中IE8部分的内容翻译了出来,作为备忘. =========================== ...

最新文章

  1. 【编程珠玑】读书笔记 第二章 算法
  2. linux主节点启动nfs,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  3. Android FFmpeg移植总攻略——获取视频帧数(亲测可用)
  4. 如何优化网站结构才促使网站排名“节节高”?
  5. [html] 写html代码时,如果缺少了结束标签,你如何检测及如何预防?
  6. archlinux php mysql,arch linux上安装 httpd+php+mysql+ openssl(转)
  7. android 释放bitmap fragment,,为什么重复Replace Fragment会内存泄漏
  8. 7-1:C++的IO流
  9. mysql中的自增列和默认字段值为系统时间
  10. [渝粤教育] 西南科技大学 公共关系学 在线考试复习资料
  11. springboot幼儿园幼儿基本信息管理系统毕业设计源码201126
  12. 融合多源信息的知识表示学习方法
  13. 删除页码和从第三页开始有页码
  14. Java中的求和公式_Sympy codegen:求和索引函数
  15. 自监督论文阅读笔记Reading and Writing: Discriminative and Generative Modelingfor Self-Supervised Text Recogn
  16. 甄别客户需求,提高解决问题的效率
  17. NX/UG二次开发-其他-打包对话框\图标到DLL
  18. win10 docker 容器修改端口映射
  19. html设置flash自适应,SWF自适应布局技巧 (Rapid Flash Development)快速Flash开发
  20. opencart修改后台文件夹名

热门文章

  1. 配置linux下node节点的ip
  2. Mac-远程连接Mac
  3. (007) java后台开发之Scanner报错java.util.NoSuchElementException
  4. 第29月第21天 ios android curl
  5. 常用模块和面向对象 类
  6. eclipse MAT分析heap dump
  7. [转载]给IT人员支招:如何跟业务部门谈需求分析?
  8. 解决NetStream.appendBytes直播爆音的问题解决
  9. 理解javascript 回调函数
  10. (C#)WinForm窗体间传值