高亮网页中的关键字

高亮网页中的关键字

javascript的代码如下

function HightLight(nWord)
{
 var oRange = document.body.createTextRange();
    while(oRange.findText(nWord))
    {
  oRange.pasteHTML("<span style='background-color:yellow'>" + oRange.text + "</span>");
  oRange.moveStart('character',1);
 }
}


如果在vb中使用,改进一下,

Public Sub HightLight2(nKey$, nDoc As MSHTML.HTMLDocument, Optional beforeTag$ = "", Optional afterTag$ = "")
On Error Resume Next
Dim tBody As MSHTML.HTMLBody
Dim oRange As MSHTML.IHTMLTxtRange

If beforeTag = "" Then
    beforeTag = "<span style='background-color:yellow'>"
End If
If afterTag = "" Then
    afterTag = "</span>"
End If

Set tBody = nDoc.body
If Not tBody Is Nothing Then
    Set oRange = tBody.createTextRange
    If Not oRange Is Nothing Then
        While oRange.FindText(nKey)
            Call oRange.pasteHTML(beforeTag & oRange.Text & afterTag)
            Call oRange.MoveStart("character", 1)
        Wend
    End If
End If
End Sub

如果页面中有多个frame,那么还需要做些工作,我就不写了.


lingll (lingll2001@21cn.com)
2004-7-5

补充:
枚举页面中的frame可以参考下面的文章
http://www.mvps.org/emorcillo/vb6/inet/wbframe.shtml

Getting the IWebBrowser2 interface for each HTML frame
This code enumerates the frames of a HTML page loaded in the WebBrowser control to get they IWebBrowser2 interface.

Note: This tip is based on the Microsoft KB article 196340 and requieres the OLELIB.TLB type library.

Sub EnumFrames(ByVal wb As WebBrowser)
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVw.IWebBrowser2

   Set pContainer = wb.Object.Document
  
   ' Get an enumerator for the frames
   If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
  
      Set pContainer = Nothing
     
      ' Enumerate and refresh all the frames
      Do While pEnumerator.Next(1, pUnk) = 0
        
         On Error Resume Next
        
         ' Clear errors
         Err.Clear
        
         ' Get the IWebBrowser2 interface
         Set pBrowser = pUnk
  
         If Err.Number = 0 Then
            Debug.Print "Frame: " & pBrowser.LocationURL
         End If
  
      Loop
     
      Set pEnumerator = Nothing
  
   End If
  
End Sub

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值