我想要做的是在PostBack的ASP.NET頁面之後立即調用Java Applet方法。爲了做到這一點,我使用了ScriptManager.RegisterStartupScript函數,該函數通過一個小腳本塊調用頁面中的一個函數,然後調用Applet函數。它似乎是多步驟的,但如果我只是嘗試從後面的代碼中編寫的腳本塊中調用Applet函數,那麼我什麼也得不到。我實際上已經實現了我之後的結果,但只有當我第一次將JavaScript警報放入由腳本塊後面的代碼調用的函數中時。從RegisterStartupScript調用Applet函數
問題是否有人知道如何解決必須在Applet函數被調用之前觸發警報?
下面是一些簡化的僞代碼,以更好地描述場景。
(.ascx.cs - yes this is in a user control, perhaps that is problematic?) protected void SetupAppletInput() { string scriptBlock = CreateJavaScriptBlock(dataForApplet); ScriptManager.RegisterStartupScript(grvDataSet, grvDataSet.GetType(), "clicky", scriptBlock, true); } protected string CreateJavaScriptBlock(String dataForApplet) { StringBuilder sb = new StringBuilder(); sb.Append("CallAppletFunction(dataForApplet);"); return sb.ToString(); } (.ascx) function CallAppletFunction(dataForApplet) { alert("Calling applet function"); // with this line in it works, but is really annoying to have to click the alert off for every PostBack document.ReallyCoolApplet.functionToCall(dataForApplet); }
外面的這一點,我相信只有相關的事實是,該網頁的部分被調回是一個UpdatePanel,但小程序本身不是一個更新面板,我相信它不是」不會重新加載。
希望我能充分解釋這一點。 感謝您對此的任何幫助/想法!
如果您使用JavaScript計時器來延遲對CallAppletFunction的調用,會發生什麼情況?例如setTimeout('CallAppletFunction(dataForApplet)',1000) – Phaedrus 2009-11-16 18:13:26
我試着在思考同樣的事情,沒有骰子的幾個變化。我也嘗試循環尋找Applet.IsActive()並在每個之間暫停1秒,並且它永不結束。我記得以前嘗試檢查IsActive()函數讓我懷疑它,儘管如此我沒有在其中放置很多股票。謝謝! – elo 2009-11-16 19:38:32