我有一個使用 Webview2 瀏覽器打開表單的模塊。Webview2 控制元件然后使用用戶用戶名和密碼(他之前在兩個文本框中輸入)登錄網站并通過幾個鏈接加載到用戶可以搜索客戶的特定網頁www.login.ca/search。在用戶輸入名稱并單擊搜索按鈕后,下一頁會加載一秒鐘,然后再次加載www.login.ca/search頁面。我只是希望用戶能夠繼續瀏覽該頁面,而無需瀏覽器重新加載“login.ca/search”網頁。
我有這個:
Imports System.Windows.Interop
Imports Microsoft.Web.WebView2.Core
Module SearchForCustomer
Public Sub CheckCustomer()
WebviewForm.Show()
OpenAndLogIn()
End Sub
Public Sub OpenAndLogIn()
'Open webpage and log in
Dim Loginwebaddress As String = "https://www.login.ca"
WebviewForm.WebView21.Source = New Uri(Loginwebaddress)
AddHandler(WebviewForm.WebView21.NavigationCompleted), AddressOf FirstPageWebView
End Sub
Private Async Sub FirstPageWebView(ByVal sender As Object, ByVal e As CoreWebView2NavigationCompletedEventArgs)
Dim msg = TextBox1.Text 'Username
Dim msg2 = TextBox2.Text 'password
Await WebviewForm.WebView21.ExecuteScriptAsync($"document.getElementById('LoginUN').value = '{msg}';")
Await WebviewForm.WebView21.ExecuteScriptAsync($"document.getElementById('Login1PW').value = '{msg2}';")
Await WebviewForm.WebView21.ExecuteScriptAsync($"document.getElementById('Login1_DoLogin').click();")
AddHandler(WebviewForm.WebView21.NavigationCompleted), AddressOf LoginWebpageLoaded
End Sub
Private Sub LoginWebpageLoaded
'Load the search for customer page
Dim Loginwebaddress As String = "https://www.login.ca/search"
WebviewForm.WebView21.Source = New Uri(Loginwebaddress)
End Sub
uj5u.com熱心網友回復:
的第一行FirstPageWebView應該再次洗掉處理程式,因為它應該只使用一次。
當您致電時,AddHandler您實際上已經注冊了 2 個處理程式,它們將在每個NavigationCompleted事件上都運行。
(我不知道 Vb.Net 所以這段代碼可能是錯誤的,但我希望你明白:
Private Async Sub FirstPageWebView(ByVal sender As Object, ByVal e As CoreWebView2NavigationCompletedEventArgs)
RemoveHandler(WebviewForm.WebView21.NavigationCompleted), AddressOf LoginWebpageLoaded
......... more code .........
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/415379.html
標籤:
