在實作程式設計打開網頁時,常常會操作網頁元素時會失敗,這時很有可能是打開網頁時沒有加載完成照成的,網頁沒有加載完成而去操作網頁元素時,當然會失敗。
為了杜絕這種現象,可以在操作網頁元素前,等待網頁加載完成。
如果是利用IWdbBrowser2::Navigate2來打開網頁,我們可以使用IWebBrowser2::get_ReadyState來擷取,有五個狀态值如下
READYSTATE_UNINITIALIZED 未初始化
READYSTATE_LOADING 正在加載
READYSTATE_LOADED 加載完成
READYSTATE_INTERACTIVE 可以互動,隻能接受到部分響應資料
READYSTATE_COMPLETE 全部資料可以接受,代表加載成功
代碼如下
while (plready != 4)
{
plready = READYSTATE_UNINITIALIZED;
mm_iBrowser->get_ReadyState(&plready);
}
mm_iBrowser類型為IWebBrowser2,plready 類型為READYSTATE
這段代碼加在要對網頁進行操作之前。