Refresh
ユーザーがコンテキスト メニューから選択したかどうかを検出するにはどうすればよいですか? ユーザーがメソッドを選択しても、NavigateComplete2
メソッドは呼び出されません。
さらに重要なことは、独自のカスタム ユーザー エージェントを設定する方法の 1 つは、イベント メソッドをフックするBeforeNavigate2
ことであり、ユーザーが [更新] を選択したか、新しい URL をナビゲートしたかを知る必要があります。
任意の洞察をいただければ幸いです。
これは、が選択されNavigateComplete2
たときにメソッドが起動されないことを示しています。Refresh
oWB := new WebBrowserControl("http://stackoverflow.com")
Class WebBrowserControl
{
__New(strURL) {
static WB
Gui, New, Resize
Gui, Add, ActiveX, vWB w780 h580, Shell.Explorer
Gui, show, w800 h600
ComObjConnect(WB, this)
WB.Navigate(strURL)
Loop
Sleep 10
Until (WB.readyState=4 && WB.document.readyState="complete" && !WB.busy)
Return
GuiClose:
ExitApp
}
NavigateComplete2(oParams*) {
ComObjError(false)
WB := oParams[1]
msgbox, 64, Navigate Completed
, % "WB.locationURL :`t`t" WB.locationURL "`n"
. "WB.Document.URL:`t`t" WB.Document.URL "`n"
. "windowlocation.href:`t" WB.document.parentWindow.location.href
}
BeforeNavigate2(oParams*) {
WB := oParams[8]
strURL := oParams[2]
msgbox % "Loading URL:`t`t" strURL "`n"
. "WB.locationURL :`t`t" WB.locationURL "`n"
. "WB.Document.URL:`t`t" WB.Document.URL "`n"
. "location.href:`t`t" WB.document.parentWindow.location.href "`n"
. "WB.ReadyState:`t`t" WB.readystate "`n"
. "WB.document.readystate:`t" WB.document.readystate "`n"
. "WB.Busy:`t`t`t" WB.Busy "`n"
}
}