commandButtonのaction処理後にjavascript処理の実行はできないと思っていました。
onCompleteイベントで実行できたんですね。サンプルは次のとおり。
Page
<apex:page Controller="CommandButtonOnCompleteController" title="Force.com Sample" showHeader="true" sidebar="false"> <apex:form id="formId"> <apex:commandButton value="Button" action="{!doButtonClick}" onComplete="return btnClick();" rerender="formId" /> <script> function btnClick() { var message = '{!message}'; alert(message); return false; } </script> </apex:form> </apex:page>
Controller
public with sharing class CommandButtonOnCompleteController { // メッセージ public String message {get; set;} /* * コンストラクタ * @param : なし * @return : なし */ public CommandButtonOnCompleteController() { System.debug('◆◆◆◆CommandButtonOnCompleteController:START'); // メッセージ this.message = ''; System.debug('◆◆◆◆CommandButtonOnCompleteController:END'); } /* * ボタン押下処理 * @param : なし * @return : なし */ public void doButtonClick() { System.debug('◆◆◆◆doButtonClick:START'); // メッセージ this.message = 'OK'; System.debug('◆◆◆◆doButtonClick:END'); } }
GitHub Link
GitHubにもアップロードしてみました。
Apex_CommandButton_OnComplete
https://github.com/tyoshikawa1106/Apex_CommandButton_OnComplete