我需要根據以下html元素的可見性執行方法。在C#webbrowser控件中檢查這個遞歸代碼
<div id="loading" style="height: 201px; width: 793px; visibility: hidden;">
我用來檢查可見性屬性的方法正常工作。
public bool isloading()
{
string v;
v= webBrowser1.Document.GetElementById("loading").Style;
if (v.Contains("visible")) { return true; }
if (v.Contains("hidden")) { return false; }
else
return false;
}
我正在像這樣使用它。該應用在遇到此代碼時會凍結。需要幫忙。我不能使用webbrowser1.documentcompleted
事件,因爲這是一個AJAX調用。我唯一的選擇是檢查「可見性」屬性。我想讓循環繼續檢查isloading()並執行universalclickbutton();如果這個循環沒有執行,每當isloading()爲false時。我知道它是在一個方法中調用一個方法。有人請給我替代品嗎?
當涉及到上面的代碼時,應用程序會凍結,因爲它可能是遞歸的嗎?
不,應用程序凍結,因爲你處於一個緊密的循環中,從來沒有給它一個執行其他任何事情的機會。但它不會永遠運行,因爲最終你會得到一個'StackOverflowException'。你需要重新思考你的方法。查看是否有可以訂閱的事件,在加載完成時執行,然後在那個時候調用您的按鈕點擊功能。 –
即時通訊沒有其他可以訂閱的活動(瀏覽互聯網了幾個小時)。是的,我堅持我的方法。有什麼辦法可以隨時檢查html元素的屬性,然後根據屬性的變化執行一個方法。即時通訊編程新手,請耐心等待:)。 – Dinesh
專業提示:在提問時,不要使用全帽大喊,不要大膽使用,不要求「儘快」幫助 - 這是獲得低投入的好方法。 – halfer