【发布时间】:2015-03-05 19:54:09
【问题描述】:
我有一个带有日历 Web 部件的 SharePoint 2013 发布网站。我希望日历成为组日历,但 SharePoint 不保留日历的默认用户。所以我一直在使用一种方法来在页面加载时填充日历。这里有详细描述:http://blogs.technet.com/b/meamcs/archive/2013/04/10/sharepoint-group-calendar-adding-default-users.aspx。 这适用于 Chrome、Opera、Safari 和 FireFox,但不适用于 IE(我使用 IE 的模拟器测试了 5 到 11)
链接中描述的方法从日历 html 标记中获取上下文 ID,并使用 SharePoint 的 JavaScript 库从预定义的 XML 加载额外的用户。 我从服务器上的文件中加载了 XML。 Web 部件的 HTML 如下所示:
<div id="ctl00_ctl43_g_cc24db55_d224_4ea9_b770_4c2edd2c083e_ctl01_ctl00_ctl00" class="ms-acal-rootdiv" ctxid="WPQ3">...</div>
ctxid 用于引用日历。但是,在 IE 中,不存在 ctxid 属性!所以,我使用前一个元素来获取 ctxid:
<div class="ms-acal-error" id="WPQ3_err" style="display:none"></div>
这是我将用户加载到日历中的代码:
ExecuteOrDelayUntilScriptLoaded(function(){
var ctxid;
if ( $(".ms-acal-rootdiv").attr("ctxid") ){
ctxid = $(".ms-acal-rootdiv").attr("ctxid");
}
else if ( $(".ms-acal-error").attr("id") ){
ctxid = $(".ms-acal-error").attr("id").replace("_err","");
}
SP.UI.ApplicationPages.CalendarSelector.instance().getSelector(1,ctxid).selectEntities(xml,true);
},"sp.ribbon.js");
IE 抛出错误:“无法获取未定义或空引用的属性 'selectEntities'”,并且 IE 确实为 getSelector(1,ctxid) 返回未定义。我也尝试过硬编码 ctxid 的值,但没有成功。
我已经在 Google 上搜索了几个小时,但没有找到任何解决方案。大多数描述此过程的博客都有来自其他用户的 cmet 询问此问题,但没有人回答这些问题。
可能是什么问题?
【问题讨论】:
-
你确定
ctxid包含正确的值吗?如果您将字符串硬编码到方法中,这是否有效? -
我尝试将值硬编码为“WPQ3”,但 IE 仍然返回“未定义”错误...
标签: javascript internet-explorer calendar sharepoint-2013