2016-08-16 38 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它並沒有真正改變,直到邊緣。