代码可以在Edge和Chrome中运行,但不能在Internet Explorer 11中显示。在11中不显示行格式。
Windows 8 build SharePoint 2013 On Premise Explorer 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.
发布于 2016-08-16 21:18:21
这是由于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,它直到Edge才真正改变。
https://stackoverflow.com/questions/38975519
复制相似问题