FrontPage VBA教程:使用 Microsoft Visual Basic 访问 FrontPage 框架集

框架是站点设计中的一个重要部分。Microsoft FrontPage 支持对框架内容进行编程。单击下列链接之一可获得有关某个特定主题的详细内容。

探索框架

框架集的作用

访问 HTML 标记

动态框架资源

在网页窗口中的所有框架间循环

将 Meta 标记的内容更改为另一个字符集

探索框架

在 FrontPage 中访问框架集中的框架相对简单,只要您记住每个框架访问其本身的网页并且您是通过 Page对象模型来访问每个网页的内容的。显示框架所涉及到的两个窗口分别为PageWindowEx对象和 FPHTMLWindow2对象。访问与当前框架相关联的窗口的内容所用的等价表达式为Set myActiveFrameInFrameset = ActivePageWindow.Document。ActivePageWindow对象访问框架的网页窗口,Document对象访问 FPHTMLWindow2对象。

注意  如果尝试在“HTML”视图中访问对象,则会得到权限拒绝错误。向文档对象添加代码或文本时,必须将ViewMode属性的 FpPageViewMode 常数设置为 fpPageViewNormal。视图模式的值不能设置为 fpPageViewHtml 或 fpPageViewPreview。此外,在 FrontPage 用户界面 (UI) 中,您不能在“网页”视图下打开“HTML”选项卡或“预览”选项卡。

框架集的作用

框架集是 Web 窗口中所有框架的容器。每个框架都包含在一个单独的网页窗口中,并且有一个单独的网页与其相关联。通过访问 Web对象模型的 FrameWindow对象,可以访问包含框架网页文档的 FPHTMLWindow2对象。从这些对象您可以访问框架集的窗口、文档和框架。在下列语句中,


myFrameset
是一个返回框架网页文档的 FPHTMLWindow2对象。从这个对象里您可以访问 <FRAME> 和 <FRAMESET> 标记、窗口或文档对象。

Set myFrameset = ActivePageWindow.FrameWindow

此语句通过 Page对象模型返回一个 FPHTMLWindow2对象。使用myFrameset 的 Document属性访问网页的 Page对象模型等价于在 FrontPage 的“网页”视图下访问框架网页的“HTML”选项卡。

注意  框架网页的“HTML”和“无框架”选项卡只有在当前网页有框架时是有用的。

访问 HTML 标记

通过将对象声明为 FPHTMLFrameElement对象,可以访问 <FRAME> 框架标记所能访问的信息。该对象可用的某些属性和方法包括 border、borderColor、click、frameBorder、frameSpacing、innerHTML、innerText、insertAdjacentHTML 和 insertAdjacentText。


Dim myFramesElements() As FPHTMLFrameElement

您可以通过声明一个 FPHTMLFramesetSite对象来访问框架集标记的信息。


Dim myFramesetSite As FPHTMLFramesetSite

动态框架资源

您可以使用下列语句在 HTML 代码中动态地更改框架资源。该代码将框架资源设置为新的 URL,Inventory_1stQuarter.htm。


Dim myDoc As Object
Set myDoc = ActivePageWindow.FrameWindow.Document
myDoc.all.tags("frame").Item(0).src = _
    "Inventory_1stQuarter.htm"

对网页窗口中全部的框架进行循环

若要访问存放在特定框架网页中的框架集组件的属性,必须通过 Document属性访问 DispFPHTMLDocument对象。下列示例对 Microsoft FrontPage 中当前框架集合中的框架集和框架组件进行循环。框架集数组 (myFSElements) 包含框架网页上的每个 <FRAMESET> 标记。框架数组 (myFramesElements) 包含框架网页上的每个 <FRAME> 标记。框架窗口数组 (myFramesWindows) 包含指向每个框架的所有 FPHTMLWindow2对象。通过对数组所对应的标记或对象进行循环,可填充每个数组。一旦填充数组,您就可以将框架集组件的 frameSpacing属性更改为“10”,将 borderColor属性更改为“red”,同时更改文档中的各种其他属性。


Private Sub AccessFramesPage()
Dim myFPWindow As FPHTMLWindow2
Dim myFSElements() As IHTMLFrameSetElement
Dim myFramesWindows() As FPHTMLWindow2
Dim myFramesElements() As FPHTMLFrameElement
Dim myStyle As FPHTMLStyle
Dim i As Integer
Set myFPWindow = ActivePageWindow.FrameWindow
ReDim myFSElements(myFPWindow.Document.all.tags("FRAMESET").length)
ReDim myFramesElements(myFPWindow.Document.all.tags("FRAME").length)
ReDim myFramesWindows(myFPWindow.frames.length)
For i = 0 To UBound(myFSElements)
    Set myFSElements(i) = _
        myFPWindow.Document.all.tags("FRAMESET").Item(i)
Next i
i = 0
For i = 0 To UBound(myFramesWindows)
    Set myFramesWindows(i) = myFPWindow.frames(i)
Next i
i = 0
For i = 0 To UBound(myFramesElements)
    Set myFramesElements(i) = _
        myFPWindow.Document.all.tags("FRAME").Item(i)
Next i
myFSElements(0).frameSpacing = "10"
myFramesElements(0).borderColor = "red"
With myFramesWindows(2).Document
    .bgColor = "green"
    .body.innerHTML = "<p id=""cool""> Added by FP Programmability"
    Set myStyle = .all.cool.style
        myStyle.backgroundColor = "white"
        myStyle.display = False
        myStyle.textDecorationUnderline = True
        myStyle.Font = "Tahoma, 24"
        myStyle.fontStyle = "italic"
End With
End Sub

将 Meta 标记内容更改为另一个字符集

您可以将全部的内容类型的 META 标记更改为另一个字符集(中欧),如以下代码示例所示。当前字符集显示在“语言设置”对话框中(网页属性中可用)。

注意  整个内容类型 META 标记包含与以下字符串类似的字符串:


content = "text/html; charset = windows-1252"

字符集为“windows-1252”,也是“英语(美国)”的默认字符集。

每当应用程序重复一个循环,您访问 frameWindow对象中下一个框架,就象连续访问每一个 HTML 的框架标记一样。然而,Frames集合并不支持 For... each 架构。您不能通过其名称来访问 HTTP-EQUIV 类型的 meta 标记;而必须如下述示例引用一个索引。以myContentType.Content 开头的表达式将字符集设置为 Central European。

注意  FrontPage 设置 <META> 标记零 (0) 中的内容类型。


Private Sub ChangeCharSet()
    Dim myFrames As IHTMLFramesCollection2
    Dim myFrame As FPHTMLWindow2
    Dim myHTTPEquiv As String
    Dim myContentType As Object
    Dim myCount As Integer
    Set myFrames = ActivePageWindow.FrameWindow.frames
    Set myFrame = ActivePageWindow.FrameWindow.frames(0)
    myHTTPEquiv = 0
    For myCount = 0 To myFrames.Length - 1
        Set myFrame = myFrames(myCount)
        Set myContentType = _
            myFrame.Document.all.tags("meta").Item(myHTTPEquiv)
        myContentType.content = _
            "text/html; charset=iso-8859-2"
    Next myCount
End Sub

上页:FrontPage VBA教程:由设计阶段控件访问 FrontPage 中的对象模型 下页:FrontPage VBA教程:创建 Web 站点

FrontPage VBA教程:使用 Microsoft Visual Basic 访问 FrontPage 框架集

FrontPage VBA教程:创建 Web 站点 FrontPage VBA教程:探索 FrontPage 中的 Page对象模型
FrontPage VBA教程:探索 FrontPage 中的对象模型 FrontPage VBA教程:探索过程
FrontPage VBA教程:Microsoft FrontPage 2002 支持的 HTML事件 FrontPage VBA教程:FrontPage 2002 不支持的 HTML事件
FrontPage VBA教程:FrontPage 2002 支持的 HTML方法 FrontPage VBA教程:FrontPage 2002 不支持的 HTML方法
FrontPage VBA教程:Microsoft FrontPage 2002 中的 HTML对象 FrontPage VBA教程:FrontPage 2002 支持的 HTML属性
FrontPage VBA教程:FrontPage 2002 不支持的 HTML属性 FrontPage VBA教程:FrontPage 特有的方法
FrontPage VBA教程:FrontPage 特有的对象 FrontPage VBA教程:FrontPage 特有的属性
FrontPage VBA教程:用 MetaTags 管理发布 FrontPage VBA教程:以编程方式修改网页
FrontPage VBA教程:在 Microsoft FrontPage 中以编程方式设计动态元素 FrontPage VBA教程:返回集合中的对象
FrontPage VBA教程:共享 Microsoft FrontPage 程序设计工程 FrontPage VBA教程:在 Microsoft FrontPage 中管理版本控制工程
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号