2016-10-31 18 views
0

コードビハインドからjavascript関数を実行する方法に関する他の解決策を見つけました。問題は、ページが読み込まれる前に起動しているため、ロジックを追加できません。クライアント側JavaScriptビヘイビアをコードビハインドからページロード後に実行する方法

<script> 
    confirmPwdChange() 
    { 
    alert("Password has been successfully changed."); 
    //Add more logic here, after user clicks the OK button... 
    } 
</script> 

ませんjQueryのオン

if(result) 
{ 
    Page.ClientScript.RegisterClientScriptBlock(typeof(Page), 
               "Script", "confirmPwdChange();", true); 
} 

、可能ならば。

ありがとうございます。

+1

'RegisterClientScriptBlock'の代わりに' RegisterStartupScript'を使用してください。 http://stackoverflow.com/questions/666519/difference-between-registerstartupscript-and-registerclientscriptblockを参照してください。 – VDWWD

答えて

1

を探していると思います。このような何か...

StringBuilder script = new StringBuilder(); 
script.Append("var existingHandler = window.onload;"); 
script.Append("window.document.body.onload = function(){ confirmPwdChange(); if (existingHandler){ existingHandler()}}"); 
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), 
              "Script", script.ToString(), true); 

この確保は、あなたのパスワード変更は、ページのロード時に呼び出されると、他の既存のハンドラは、ページ上ですでに宣言保持されます。

+0

このエラーが発生しました: 'Uncaught SyntaxError:予期しないトークン<'。 – Richard77

+0

私の悪い。

1

私はあなたがあなたのスクリプトファイルにwindow.onloadを含めることができますPageRequestManager

List of PageRequestManager events

var prm = Sys.WebForms.PageRequestManager.getInstance(); 

// beginRequest: before postback to server 
prm.add_beginRequest(BeginRequestHandler); 

// endRequest: after postback to server 
prm.add_endRequest(EndRequestHandler); 

function BeginRequestHandler(sender, args) { 
    // do stuff 
} 

function EndRequestHandler(sender, args) { 
    // do stuff 
} 
+0

これをコードの中で実行されたコードの成功/失敗にリンクする方法を教えてください。 – Richard77

関連する問題