簡體   English   中英

在 DocumentCompleted 中運行一次 function

[英]Running a function once in DocumentCompleted

我想要做的是在 DocumentCompleted 事件中運行一次 function,我知道它會在瀏覽器加載 iframe/外部鏈接時觸發多次,我想不出辦法來做到這一點。

我試過的:

代碼:

        private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            bool hasFiredOnce = false;
            if ((sender as WebBrowser).ReadyState == WebBrowserReadyState.Complete)
            {
                try
                {
                    // 1) - Find out what url we are viewing and update accordingly ...
                    WebBrowser browser = (WebBrowser)sender;
                    var current_url = browser.Url.AbsoluteUri;
                    txtBoxUrl.Text = current_url;

                    // Check for any saved answers ...
                    if (hasFiredOnce == false) 
                    {
                        if (Helpers.CheckForSavedAnswers(txtBoxUrl.Text) != "NONE")
                        {
                            hasFiredOnce = true;
                            linkLabelAnswerText.Text = "Stored answer found!";
                            Helpers.ReturnMessage(Helpers.CheckForSavedAnswers(txtBoxUrl.Text));
                        }
                        else
                        {
                            linkLabelAnswerText.Text = "...";
                            hasFiredOnce = false;
                        }
                        Helpers.ReturnMessage("This should fire once!");
                     }
                }
                catch (Exception ex)
                {
                    Helpers.DebugLogging("[" + DateTime.Now + "]-[" + ex.ToString() + "]");
                }
            }
        }

是設置一個布爾值,如果它是false的,我們運行 function Helpers.CheckForSavedAnswers(txtBoxUrl.Text)然后將其設置為true ,這樣它就不會再次運行,但確實如此,我想我在這里遺漏了一些明顯很小的東西,任何幫助將不勝感激。

我同意邁克爾的觀點,問題是 HasFiredOnce 在您試圖控制的 function 中被聲明和初始化。 使其成為全局變量,或將其存儲在可以全局訪問的其他位置(例如,在數據庫或文件中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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