高亮网页中的关键字

来源:互联网 发布:怎样配置java运行环境 编辑:程序博客网 时间:2024/05/17 04:10

高亮网页中的关键字

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

原创粉丝点击