[英]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.