编程论坛's Archiver

momia 发表于 2007-10-23 09:16

[求助]请教webbrowser怎么跳转?

<P>我做了一个程序,希望它能完成以下的功能<br><br>打开一个html文档,分析里头的超级链接,根据我的需要找到符合条件的超级链接,跳转到这个超级链的网页。<br><br>我现在是分析webbrowser1.documents.links.item(i).outhtml,觉得很麻烦,而且如果是相对路径<br>分析起来就会出错。。。还有一些带脚本的超级链接也无法跳转。<br><br>我想是我的方法太笨了吧,是不是webbrowser里头就有这样一个方法能够在我找到这个链接的时候自动去跳转的。<br><br>我现在的程序段是这样写的:<br><br>现有的控件:<br>WBS1 是webbrowser控件,它的状态是已经打开了一个网址。<br>TextBox1  里头手工输入一小段文本<br>Button <br><br>我希望如果在网页中的超级链接显示的文字如果包含textbox1里头的文字,那么就跳转到那个链接的地址去。<br><br><br><br><br>    Private Sub GoToTargetLink()<br>        Dim strURL As String<br>        Dim strHtml As string<br>        Dim strName As string<br>        Dim I As Integer<br>        For I = 0 To WBS1.Document.Links.Count - 1<br>            strHtml = WBS1.Document.Links.Item(I).OuterHtml<br>            strName = WBS1.Document.Links.Item(I).OuterText<br><br>            If strName.Contains(TextBox1.Text) Then<br>                strUrl = "http" &amp; GetInter(strHtml, "http", """")   '这里把OuterHtml里头的包含http 和<br>                                                                   '双引号中间的部分提取出来。<br>                WBS1.Navigate(strUrl)                               '这里用webbrowser.navigate函数跳转。<br>                Exit Sub                                           '跳转成功就跳出了。<br>            End If<br>        Next<br>    End Sub<br><br>        '下面是自己写的 GetInter函数,把介于第一个文本中的介于,第二个文本和第三个文本之间的文本提取出来返回。<br><br>    Public Function GetInter(ByVal strOrigin As String, ByVal strStart As String, ByVal strEnd As String) As String</P>
<P>        Dim I, J As Integer<br>        I = strOrigin.IndexOf(strStart) + strStart.Length<br>        J = strOrigin.IndexOf(strEnd, I)<br>        GetInter = strOrigin.Substring(I, J - I)<br>    End Function<br><br>还有一个button1_clikc() 就是调用 GoToTargetLink() 省略了。<br>-----------------------------------------------<br><br>现在的问题是WBS1.Document.Links.Item(I).OuterHtml里头不一定含有 "http"字段,还有可能是javascript,也可能相对路径之类的我的程序就无能为力了。<br><br>OutHtml里头的可能性很多,编程来分析它太繁琐了,有没有别的方法实现跳转的。<br><br>有一个解决方法可能比较直接,是不是要找到超级链接控件的位置,调用WinApi用鼠标点它?<br>可是我不会写有没有人教教我。<br><br>请多指教啊。</P>
[align=right][color=#000066][此贴子已经被作者于2007-10-25 9:40:37编辑过][/color][/align]

momia 发表于 2007-10-23 20:08

<P>自己顶一下。</P>

momia 发表于 2007-10-25 09:38

<P>还没有人理阿,自己再顶一下。</P>

songfq 发表于 2008-1-10 13:01

正在学习,不是很懂啊

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.