質問: registList.addItem(itemCreateInfo); /*---------------------------------------------------------------------------*/ // アイテム追加処理 /*---------------------------------------------------------------------------*/ registeredListItem.set_item("カラム名", "登録する値"); registeredListItem.update(); cliCtx.load(registeredListItem); cliCtx.executeQueryAsync(Function.createDelegate(this)); /*---------------------------------------------------------------------------*/ // 「保存ボタン」押下時のアクション /*---------------------------------------------------------------------------*/ if (true) { return true; } else { return false; } // 保存処理 終了 } /*****************************************************************************/ // 保存ボタン押下後の処理 /*****************************************************************************/ function Function2() { /** * 2保存処理終了後( PreSaveAction()実行後 )に、処理をするJavaScript → Function2() * * 保存ボタン押下後の処理 * * */ } ``` 試した事 ---- ``` $.when( PreSaveAction(), Function2() ); ``` 「$.when()」を使用してみましたが、上手く行きませんでした。 よろしくお願い致します。 補足情報(言語/FW/ツール等のVersion) ------------------------ Browser → IE,Google Chrome.
回答: ユーザーはPreSaveActionに任意なJavaScriptを記述することができますが、 それ以降はサーバー処理になるため、**保存後にJavaScriptを実行することはできません。** 前提としてSharePointのページはAsp.netとなっています。 保存ボタンのJavaScript処理としては 1. PreSaveAction 2. 保存処理の呼び出し となっています。ここで「保存処理の呼び出し」と書いてあるのは、実際に保存処理を実行してるのがサーバーサイドだからです。 サーバーの保存処理後に何かしら処理を実行するためには、サーバーサイドに処理を追加する必要がありますが、 クラウド製品のSharePoint Onlineではそれも不可能です。 ※方法がないわけではありませんが、実現コストは非常に高いです。 ですので、「保存後に何か処理を行う」というのは諦めたほうがいいかもしれません。