我已经使用 fullcalendar.js 和 scheduler.js 插件在客户的 ASP.NET WebForms 站点上实现了一个调度程序。它在我的本地机器上就像一个魅力,但是当我将它部署到另一台机器上时——无论是客户的还是我的——它都会抛出一个通用的“无法读取未定义的属性'ownerDocument'”错误。
这是一个堆栈跟踪:
getScrollParent (fullcalendar.js:302)
queryBoundingRect (fullcalendar.js:2419)
build (fullcalendar.js:2236)
d.internalApiVersion.r.prepareHits (scheduler.min.js:8)
computeCoords (fullcalendar.js:3066)
handleInteractionStart (fullcalendar.js:3025)
startInteraction (fullcalendar.js:2520)
dayMousedown (fullcalendar.js:3656)
(anonymous function) (fullcalendar.js:3597)
dispatch (jquery.min.js:3)
q.handle (jquery.min.js:3)
这是引发错误的行:
返回位置 === '固定' || !scrollParent.length ? $(el[0].ownerDocument || 文档) : scrollParent;
到目前为止我做过的事情:
- 检查两个系统上的文件 - 所有文件都完全相同。
- 将 fullcalendar 更新到版本 3(通过将 2.9.1 文件替换为新文件)
- 在 IISExpress 和 IIS 上运行它
- 使用完整日历的非缩小版本。
结果就是上面的错误。
这是我要处理的事件:
select: function(start, end, jsEvent, view, resource) {
$.ajax({
url: '/WebServices/WineLocationTaskService.asmx/GetUsersByWineLocation',
type: 'POST',
contentType: 'application/json; charset=utf-8',
datatype: 'json',
data: JSON.stringify({
locationID: '<%= App.Context.Data.Location.ParentLocation %>'
}),
success: function(data) {
var json = $.parseJSON(data.d);
var users = [];
$.each(json, function(i, field) {
//var option = $('<option value="' + field.id + '">' + field.name + '</option>');
//$('#users').append(option);
users.push({
id: field.id,
text: field.name
});
});
$('#users').select2({ data: users, multiple: true, width: "100%" });
},
error: function() {
alert('there was an error while fetching events!');
}
});
$("#startDate").text(start.format());
$("#endDate").text(end.format());
$("#resourceID").val(resource.id);
$("#dialog2").dialog('open');
},
在后端,我使用代码 200 的结果调用 ASMX 服务 - 我可以将响应数据视为有效的 json。
这可能是不同 IIS 模块处理程序设置的结果吗?我在工作网站和非工作网站上都使用完全相同的 web.confing。