SharePoint 2013 Calendar getSelector 在 IE 中未定义
SharePoint 2013 Calendar getSelector is undefined in IE
我有一个带有日历 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 的值进行硬编码,但没有成功。
我已经在谷歌上寻找了几个小时,但没有找到任何解决方案。大多数描述此过程的博客都有其他用户询问此问题的评论,但没有人回答这些问题。
可能是什么问题?
不确定这是否构成"答案",我不确定这是否会帮助其他人,但问题似乎已解决!
因此,在我修复另一个问题后,问题似乎已经自行解决:IE也抛出了错误:
Sys.ArgumentException: Value does not fall within the expected range. Parameter name: serverRelativeUrl sp.runtime.js
其他一切都继续在页面上工作,所以我最初继续专注于手头的问题。今天,我决定专注于 Sys.ArgumentException 错误:在我的代码中,某些子网站需要来自其父网站列表中的信息。为了获取网站集 URL,我使用了 SharePoint 的 L_MenuBase_Url 变量。但是,我发现抛出 Sys.ArgumentException 错误是因为L_MenuBase_Url变量(由 SharePoint 设置)为空 (")。
不知何故,这是由 SharePoint 执行此代码引起的:
angular.element("#home_content").scope()._init()
在范围完成加载之前(我认为)。当我正在努力修复上面的错误时,我没有看到此错误:
Object doesn't support property or method '_init'
所以我记录了输出
angular.element("#home_content").scope()
而且,果然,它返回了未定义。此错误未在任何其他浏览器中发生...无论如何,一旦我通过使用计时器并等待 scope() 不是未定义的来确保 scope() 被定义,在执行 _init() 之前一切正常(包括日历和 L_Menu_BaseUrl 变量)。
在提出问题之前,我可能应该修复其他两个错误。对不起!
感谢您的帮助
- IE/Chrome中未定义的函数,但Firefox中没有
- 无法获取属性'字符串'的未定义或null引用IE 11 ASP.NET
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- 浏览并选择用户硬盘驱动器中的文件在IE中未定义
- IE错误:无法设置属性'的值;样式':对象为null或未定义
- IE:无法获取属性'的值;clientWidth':对象为null或未定义
- 拖放文件时,dataTransfer.items属性在Firefox和IE中未定义,但在Chrome中未定义
- getElementsByTagName 为空或未定义,仅在 IE 中 - 并且仅在函数中的一个特定位置
- SharePoint 2013 Calendar getSelector 在 IE 中未定义
- “FormData”仅在IE中未定义
- “无法获取未定义或空引用的属性'getData'”在IE中,但不能在Chrome中获取
- 未捕获的类型错误:无法读取IE和Chrome Firefox中未定义的属性“文档”很好
- JavaScript函数仅在IE中未定义
- IE上未定义对象值
- IE 11上未定义鼠标事件属性
- '这'chrome中未定义,但在IE中有效
- javascript:var仅在IE中未定义
- js变量'未定义'在IE中(值由ajax响应设置)
- FireFox”;窗口_laq未定义”;错误适用于Chrome和IE
- Javascript-If和or语句-IE未定义