我目前正在使用fullCalendar.js作为我的网络应用程序的一部分。
单击日历日期时,会弹出一个窗口,允许用户输入有关日历事件的详细信息并进行保存。
我希望能够从打开的窗口触发日历对象中的函数。
Javascript是否具有从单独的窗口处理对象的功能?
我尝试了很多方法从不同的窗口访问fullCalendar()对象,但没有一种方法有效。
像是这样的东西$(window.opener.document.body).find('#calendar').fullCalendar('refetchEvents');
具体来说,我的目标是refetchEvents
。
没有这样的东西,或者它上面的任何变体到目前为止都有效....有很多方法可以解决这个问题,但没有一种方法可以在单独的文档中引用“实例”。
这里发生了什么?
是否无法从单独的窗口引用我的日历对象?
非常感谢指针。
编辑------------------
我刚试过:
console.log(window.opener.calendar.fullCalendar())
这产生了一个很有希望的结果,它发现了这个函数,不幸的是现在它的所有内部引用都搞砸了。
Uncaught TypeError: Cannot read property 'eventSources' of undefined
m.fn.fullCalendar:8888/js/fullcalendar/fullcalendar.min.js:110
$.ajax.successhlc.js:892
f.Callbacks.ojquery-1.7.2.min.js:2
f.Callbacks.p.fireWithjquery-1.7.2.min.js:2
wjquery-1.7.2.min.js:4
f.support.ajax.f.ajaxTransport.send.d
除此之外,到目前为止没有变化。现在实现一个新功能。
仍在处理全球var calendar
答案 0 :(得分:2)
只看了一眼fullCalendar代码......但一般来说,尝试如何:
在开场窗口(window.opener
)中定义一个函数
function doRefetchEvents() {
alert("ok");
$("#calendar").fullCalender("refetchEvents");
}
然后从打开的窗口开始:
window.opener.doRefetchEvents();
答案 1 :(得分:0)
您可以尝试通过字符串化将日历对象存储在localStorage(https://developer.mozilla.org/en/DOM/Storage#localStorage)中(http://www.json.org/js.html - > JSON.stringify)然后,在另一个窗口中通过使用JSON.parse解析它来访问该对象。