VBFormにWebブラウザコントロールがあります。私のサイトでウェブサイトを探して表示します。
そのWebBrowser1にはフォーム送信ボタンがあります。WebBrowser1 Webページのボタンをクリックすると、独自のブラウザが開いてフォームを送信できるようにしたいと思います。
どうすればこれを行うことができますか?
(はい、それは私のWebサイトです。必要に応じてサーバー上のHTMLを変更できます。)
VBFormにWebブラウザコントロールがあります。私のサイトでウェブサイトを探して表示します。
そのWebBrowser1にはフォーム送信ボタンがあります。WebBrowser1 Webページのボタンをクリックすると、独自のブラウザが開いてフォームを送信できるようにしたいと思います。
どうすればこれを行うことができますか?
(はい、それは私のWebサイトです。必要に応じてサーバー上のHTMLを変更できます。)
答えは次のおかげです:デフォルトのWebブラウザを開く と:vb.netWebBrowserはデフォルトのWebブラウザにリンクします
そしていくつかの試行錯誤。作業結果は次のとおりです。
Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
'added a match string - if Allow is inside the URL link, then the WebBrowser control is allowed to navigate to it. otherwise use their browser.
dim Allow as string = "http://mysite.com"
If InStr(e.Url.ToString(), Allow) = 0 Then
' I'm trying here to cancel the event so that the WebBrowser1 control doesn't go there.
e.Cancel = True
' then start a new process with their default browser
System.Diagnostics.Process.Start(getDefaultBrowser(), e.Url.ToString())
End If
End Sub
Private Function getDefaultBrowser() As String
Dim browser As String = String.Empty
Dim key As RegistryKey = Nothing
Try
key = Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False)
'trim off quotes
browser = key.GetValue(Nothing).ToString().ToLower().Replace("""", "")
If Not browser.EndsWith("exe") Then
'get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4)
End If
Finally
If key IsNot Nothing Then
key.Close()
End If
End Try
Return browser
End Function
マーティンパーキンがその重複した警告を投稿しなかった場合、私はそれを解決することは決してありませんでした。
また、リンクをMETHOD = GETに変更する必要がありましたが、投稿ヘッダーが常にこのように変換されるとは限りません。