3

我不知道要对以下代码进行哪些更改才能使其在 Firefox 15 中运行:

    eventDrop: function (event, dayDelta) {
        updateCalendarEvent(event.id, dayDelta);
        //Firefox 15 fires eventClick for no good reason???
    },
    eventClick: function (event) {
        alert('event click');
        if (event.url) {
            alert(event.url);
            vUrl = '../Activities/' + event.url;
            openActivityAddEditDialog(vUrl, 'Edit Activity');
            return false;
        }
    },

我做了相当多的研究,这绝对是一个BUG。代码在 Chrome、Safari、Firefox 14 甚至 IE 中都能正常工作——但在 Firefox 15 中却不行。已经快 2 个月了,而且还没有修复的迹象。

有人在这里发布了关于解决方法的黑客攻击: http ://code.google.com/p/fullcalendar/issues/detail?id=1523

另一个类似的未回答的 Full Calendar Firefox SO 问题: Full Calendar event hyperlinks automatically fire in Firefox

4

3 回答 3

2

当您在事件中包含“url”属性时,JSON FullCalendar 会将事件呈现为<a>链接而不是<div>.

看起来 Firefox 将拖放<a>视为单击并跟随 URL。这会导致 AJAX 请求被中断并返回status=0,如下所述: https ://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest?redirectlocale=en-US&redirectslug=Using_XMLHttpRequest#XMLHttpRequests_being_stopped

就我而言(Firefox 18),这会导致“您离线!请检查您的网络”警告消息。

将“url”属性重命名为“targetUrl”会导致事件被呈现为<div>解决问题。然后,您需要修改 eventClick 处理程序以相应地使用新属性。

于 2013-01-29T11:57:30.383 回答
2

您还将有一些这样的事件数据:

events: [

{id: '76',title: 'Hot Shave',data: 'Some data',start: new Date(2012,9, 17, 13 , 55),end: new     Date(2012,9,17, 13 , 115),allDay: false, url: '<someurl>'}
],

将显示“url:”的事件更改为“workingurl:”并将您的 eventclick 代码更新为:

eventClick: function (event) {
        alert('event click');
        if (event.workingurl) {
            alert(event.workingurl);
            vUrl = '../Activities/' + event.workingurl;
            openActivityAddEditDialog(vUrl, 'Edit Activity');
            return false;
         }
    },

这应该会阻止 FF 基于 url: 属性触发点击,然后该属性不再存在。

于 2012-10-27T00:24:13.100 回答
1

即使在 fullcalendar.js 中为所有函数设置断点后——错误仍然发生,并且在 eventDrop 完成后没有完整的日历函数被触发——但重定向仍然发生。

仅在 Firefox 15 中!

也更改为早期版本的 jquery - 但没有区别。

我最近看到了一些关于 Firefox 15 和 drop 事件错误的帖子,但没有什么特别适用于此。

有没有人有这个问题?

如果没有 - 有没有办法只为 Firefox 用户禁用拖放功能?

于 2012-10-28T19:57:21.210 回答