首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint Javascript互联网11问题

SharePoint Javascript互联网11问题
EN

Stack Overflow用户
提问于 2016-08-16 20:53:24
回答 1查看 80关注 0票数 0

代码可以在Edge和Chrome中运行,但不能在Internet Explorer 11中显示。在11中不显示行格式。

Windows 8 build SharePoint 2013 On Premise Explorer 11

任何帮助都将不胜感激。

代码语言:javascript
复制
    (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.

EN

回答 1

Stack Overflow用户

发布于 2016-08-16 21:18:21

这是由于IE实现了Date。使用连字符(-)而不是斜杠(/)进行解析在Web-Kit浏览器中有效,但在IE上无效。尝试将您的ConvertSPListDate方法更改为以下方法:

代码语言:javascript
复制
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,它直到Edge才真正改变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38975519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档