2016-08-16 70 views
0

代码在Edge和Chrome,但在Internet Explorer中不显示11不显示行11的SharePoint的Javascript互联网11问题

格式化的Windows 8构建 的SharePoint 2013内部部署 浏览器11

任何帮助将不胜感激。

(function() { 

    var ctxContext = {}; 
    ctxContext.Templates = {}; 
    ctxContext.OnPostRender = formatOnPostRender; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctxContext); 

    })(); 

    function formatOnPostRender(ctx) { 
    var rows = ctx.ListData.Row; 
    var now = new Date().toDateString(); 
    var today = new Date(now); 
    //console.log("Today: " + today); 

    for (var i=0;i<rows.length;i++) 
    { 
     var listDate = ConvertSPListDate(rows[i]  ["Start_x0020_Date"].toString()); 
     //console.log("SPListItem " + i + ": " + listDate);  

     if (listDate <= today) 
     { 
      var rowElementId = GenerateIIDForListItem(ctx, rows[i]); 
      var tr = document.getElementById(rowElementId); 
      tr.style.backgroundColor = "#ffcccc"; 

     }else{ 
      var rowElementId = GenerateIIDForListItem(ctx, rows[i]); 
      var tr = document.getElementById(rowElementId); 
      tr.style.backgroundColor = "#ffebcc"; 
     } 
    } 
    } 

    function ConvertSPListDate(_date){ 

    var date = new Date(); 

    if(_date != null) 
    { 
     var day = _date.substr(0,2); 
     var month = _date.substr(3,2); 
     var year = _date.substr(6,4); 
     var time = " 00:00:00"; 
     var newdate = year +"-"+ month +"-"+ day + time; 

     date = new Date(newdate); 
    } 

    return date; 
    } 

感谢您提前。

M.

回答

0

这是由于IE执行Date。使用超文本分析(-)而不是斜线(/)适用于Web-Kit浏览器,但不适用于IE。试着改变你的ConvertSPListDate方法如下:

function ConvertSPListDate(_date) { 
    var date = new Date(); 

    if (_date != null) { 
    var day = _date.substr(0, 2); 
    var month = _date.substr(3, 2); 
    var year = _date.substr(6, 4); 
    var time = " 00:00:00"; 
    var newdate = year + "/" + month + "/" + day + time; 

    date = new Date(newdate); 
    } 

    return date; 
} 

对于IE处理的输入日期时间格式,您可以检查http://dygraphs.com/date-formats.html它并没有真正改变,直到边缘。