从地址栏搜索网页

时间:2014-11-08 13:36:41

标签: vb.net url search browser

在我的WebBrowser上我当然有一个地址栏,但我只能在地址栏中搜索网址,比如“facebook.com”等等。我希望我的地址字段能像搜索引擎一样工作,所以当我输入像www.facebook.com时,我会去facebook.com,当我搜索像facebook,没有www或.com或者我想要的东西如果您知道我的意思,地址栏会将我重定向到https://www.google.se/?gws_rd=ssl#q=facebook

2 个答案:

答案 0 :(得分:0)

也许这不是最好的方式,但它有效。

您唯一需要做的就是向阵列添加更多内容以使其更加完美。"因为有更多可能的网址结尾和启动"
        Dim CheckArrStart()
        Dim CheckArrEnd()

我会创建一个函数检查以检查在地址栏中输入的URL 私有函数CheckWebPageLink(ByVal Link As String)作为布尔值

在这个函数中,我会为每个循环使用2来检查url结尾的开始。
如果我找到一个开始我会+ 1我的确定昏暗" Dim Ok As Integer = 0"并将其从弦中移除
然后转到每个循环的下一个,找到一个url结尾 所以,如果找到一个结束+ 1我的确定昏暗,并从字符串中删除结束。 我这样做是因为我想检查字符串到底有多长,因为www之间必须有一些东西。和.com

然后在我的功能结束时,检查我的ok dim值是否为2以及没有开始和结束的链接有多长。
如果为true,则返回true布尔值;如果为false,则返回false布尔值。

然后在我的导航按钮中,我做一个if语句结束检查来自我的函数的booblean是否真的假。"如果CheckWebPageLink(ToolStripTextBox1.Text.ToLower)= True那么"
如果为true,则只导航到url,如果为false:
WebBrowser1.Navigate(" https://www.google.com/?gws_rd=ssl#q="& ToolStripTextBox1.Text)

就像我已经说过你需要修复的阵列一样,我只是添加了一些来测试。

Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click

    If CheckWebPageLink(ToolStripTextBox1.Text.ToLower) = True Then
        WebBrowser1.Navigate(ToolStripTextBox1.Text)
    Else
        WebBrowser1.Navigate("https://www.google.com/?gws_rd=ssl#q=" & ToolStripTextBox1.Text)
    End If

End Sub

Private Function CheckWebPageLink(ByVal Link As String) As Boolean

    Dim CheckArrStart() As String = ({"http://www.", "https://www.", "www."})
    Dim CheckArrEnd() As String = ({".se", ".nl", ".com", ".cu", ".tk"})
    Dim Ok As Integer = 0

    For Each LinkStart As String In CheckArrStart
        If Link.Contains(LinkStart) Then
            Link = Replace(Link, LinkStart, "")
            Ok = Ok + 1
            For Each LinkEnd As String In CheckArrEnd
                If Link.Contains(LinkEnd) Then
                    Link = Replace(Link, LinkEnd, "")
                    Ok = Ok + 1
                    Exit For
                End If
            Next
            Exit For
        End If
    Next

    If Ok = 2 And Link.Count > 2 Then
        Return True
    Else
        Return False
    End If

End Function

答案 1 :(得分:0)

您可以尝试使用此功能::

Private Function CheckURL(ByVal UrlText As String)
    Dim URL As New Uri(UrlText)
    Dim Req As System.Net.WebRequest
    Req = System.Net.WebRequest.Create(URL)
    Dim Resp As System.Net.WebResponse

    Try
        Resp = Req.GetResponse()
        Resp.Close()
        Req = Nothing
        Return True
    Catch ex As Exception
        Req = Nothing
        Return False
    End Try
End Function