簡體   English   中英

調用調用后讀取DOM對象

[英]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數量。 DOM的圖片

有辦法嗎?

任何幫助表示贊賞。

謝謝

您是說只想使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM