客户端 Web 部件定义架构
适用于:SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013
客户端 Web 部件是应用部件的后备结构。 应用部件在 XML 文档中定义,并部署为功能的一部分。
XML 架构定义
定义客户端 Web 部件的 XML 文档必须使用文件 wss.xsd 中定义的架构进行验证。 此文件位于以下路径上:
%ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\15\\TEMPLATE\\XML
元素
备注
ClientWebPart 元素包含客户端 Web 部件的核心定义。 客户端 Web 部件是一种 UI 扩展性机制,可让应用在主机 Web 中显示信息。 可以在嵌入 SharePoint 页面的 IFrame 中呈现页面的 HTML 内容。
使用 Content 元素的 Src 属性定义要在 IFrame 内呈现的页面。 必须允许目标页面显示在框架中,否则 SharePoint 页面将显示以下错误: 此内容不能显示在框架中。
某些页面包含 X-FRAME-OPTIONS http 标头作为防止 ClickJacking 攻击的机制。 必须仔细评估页面是否支持可能成为 ClickJacking 攻击目标的方案,例如银行交易页面或在线商店中的购买页面。 在评估允许目标页面由外部页面进行框架的风险后,可以删除 X-FRAME-OPTIONS http 标头以在客户端 Web 部件中显示页面。
默认情况下,SharePoint 页面包含 X-FRAME-OPTIONS http 标头。 如果使用 SharePoint 页面作为客户端 Web 部件的目标,可以通过添加 AllowFraming Web 部件来删除 X-FRAME-OPTIONS 标头。
以下代码片段演示如何将 AllowFraming Web 部件添加到 SharePoint 页面:
<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<WebPartPages:AllowFraming ID="AllowFraming1" runat="server" />
<div>
Your content
</div>
</asp:Content>
可以将自定义属性添加到客户端 Web 部件。 在功能的 Elements.xml 文件中定义自定义属性。 有四种类型的自定义属性:
- string
- integer
- boolean
- 枚举
可以使用 _editMode_ 令牌检测用户何时编辑客户端 Web 部件。 如果客户端 Web 部件处于编辑模式, 则 _editMode_ 令牌返回 1,否则返回 0。
目标页面可以动态调整客户端 Web 部件的 IFrame 的大小。 可以使用 JavaScript 发出具有所需高度和宽度的 邮报 。 有关演示如何调整应用部件大小的代码示例,请参阅 在 SharePoint 应用中动态调整应用部件的大小。
客户端 Web 部件不支持 Web 部件连接。
示例
以下示例演示声明客户端 Web 部件的 XML 文件。 有关显示创建和部署应用程序部件的步骤的文章,请参阅 创建要随 SharePoint 外接程序一起安装的外接程序部件。
<?xml version="1.0" encoding="UTF-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ClientWebPart
Title="Basic app part"
Name="Basic app part"
Description="This is a basic app part with custom properties." >
<!-- The properties are passed through the query string
using the following notation: _propertyName_
in the Src property of the Content element
-->
<Content
Src="~remoteAppUrl/AppPartContent.aspx?strProp=_strProp_&intProp=_intProp_&boolProp=_boolProp_&enumProp=_enumProp_&editmode=_editMode_"
Type="html"/>
<Properties>
<Property
Name="strProp"
Type="string"
RequiresDesignerPermission="true"
DefaultValue="String default value"
WebCategory="Basic app part category"
WebDisplayName="A property of type string.">
</Property>
<Property
Name="intProp"
Type="int"
RequiresDesignerPermission="true"
DefaultValue="0"
WebCategory="Basic app part category"
WebDisplayName="A property of type integer.">
</Property>
<Property
Name="boolProp"
Type="boolean"
RequiresDesignerPermission="true"
DefaultValue="false"
WebCategory="Basic app part category"
WebDisplayName="A property of type boolean.">
</Property>
<Property
Name="enumProp"
Type="enum"
RequiresDesignerPermission="true"
DefaultValue="1st"
WebCategory="Basic app part category"
WebDisplayName="A property of type enum.">
<EnumItems>
<EnumItem WebDisplayName="First option" Value="1st"/>
<EnumItem WebDisplayName="Second option" Value="2nd"/>
<EnumItem WebDisplayName="Third option" Value="3rd"/>
</EnumItems>
</Property>
</Properties>
</ClientWebPart>
</Elements>