1

現在、Webアプリケーションの一部として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

4

2 に答える 2

2

fullCalendar コードをざっと見ただけですが、一般的に言えば、次のことを試してみてください。

window.openerオープニング ウィンドウ ( ) で関数を定義する

function doRefetchEvents() {
  alert("ok");
  $("#calendar").fullCalender("refetchEvents");
}

次に、開いたウィンドウから:

window.opener.doRefetchEvents();

MDN の window.openerも参照してください

于 2012-05-04T22:28:28.100 に答える
0

カレンダー オブジェクトを文字列化して (http://www.json.org/js.html -> JSON) localStorage (https://developer.mozilla.org/en/DOM/Storage#localStorage) に格納することを試みることができます。 .stringify) をクリックし、別のウィンドウで JSON.parse で解析してオブジェクトにアクセスします。

于 2012-05-04T22:35:03.940 に答える