[英]Read DOM object after the invoke call
我如何從JavaScript調用中讀取回調消息的值。
這是我的代碼:
private void OnDocumentLoaded(object sender, WebBrowserDocumentCompletedEventArgs e)
{
CallbackHandler callback = new CallbackHandler(EndRequestNormally, EndRequestWithNoData);
SendJavaScript(CreateRequestCompleteListenerScript());
theBrowser.Document.InvokeScript("RequestCompleteListener", new object[] { callback });
theBrowser.Document.InvokeScript("AjaxObjectHandle", new object[] { _parameters });
}
private void EndRequestNormally()
{
SetWebWidgetWindowSize();
}
private void SendJavaScript(string script)
{
theBrowser.Document.InvokeScript("eval", new object[] {script});
}
private string CreateRequestCompleteListenerScript()
{
StringBuilder script = new StringBuilder();
script.AppendLine("var RequestCompleteListener = function(callback) {");
script.AppendLine(" var internalCallback = {");
script.AppendLine(" handleCallback:function(message, params){");
script.AppendLine(" if (message == null){");
script.AppendLine(" callback.HandleNullMessage();");
script.AppendLine(" } else {");
script.AppendLine(" callback.HandleRequestComplete();");
script.AppendLine(" }");
script.AppendLine(" }");
script.AppendLine(" }");
script.AppendLine(" UpdateAjaxObject.addListener('requestcomplete', internalCallback.handleCallback, internalCallback);");
script.AppendLine("};");
return script.ToString();
}
[System.Runtime.InteropServices.ComVisible(true)]
public class CallbackHandler
{
public CallbackHandler(VoidHandler requestCompleteAction, VoidHandler nullMessageAction)
{
_requestCompleteAction = requestCompleteAction;
_nullMessageAction = nullMessageAction;
}
private VoidHandler _requestCompleteAction;
private VoidHandler _nullMessageAction;
private bool _requestCompleted;
[System.Runtime.InteropServices.DispId(0)]
public void HandleRequestComplete()
{
if (!_requestCompleted)
_requestCompleteAction();
_requestCompleted = true;
}
[System.Runtime.InteropServices.DispId(1)]
public void HandleNullMessage()
{
if (!_requestCompleted)
_nullMessageAction();
}
}
上面的代碼只是進行調用。
我想要的是在通話后讀取消息中的值。
下圖包含AJAX對象中的值
我想獲取交易時間表下的binshare數量。
有辦法嗎?
任何幫助表示贊賞。
謝謝
您是說只想使用JavaScript嗎? <script>alert(AjaxObject.messages.tradeSchedule.binShares[0]);</script>
您沒有擴展binShares數組,所以我不確定其中的內容。
我看到您進行了更改,您想要binShares的長度,執行此操作...
<script>alert(AjaxObject.messages.tradeSchedule.binShares.length);</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.