繁体   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