Схема определения клиентской веб-части
Область применения: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013
Клиентская веб-часть — это резервная структура частей приложения. Части приложения определяются в XML-документах и развертываются как часть компонента.
Определение схемы XML
XML-документ, определяющий клиентские веб-части, должен проверяться со схемой, определенной в файле wss.xsd. Этот файл находится по следующему пути:
%ProgramFiles%\\Common Files\\Microsoft Shared\\web server extensions\\15\\TEMPLATE\\XML
Элементы
Замечания
Элемент ClientWebPart содержит определение ядра для веб-части клиента. Клиентская веб-часть — это механизм расширения пользовательского интерфейса, который позволяет приложениям отображать информацию на хост-сайте. Html-содержимое страницы можно отобразить в IFrame, внедренном в страницу SharePoint.
Вы определяете страницу, отрисовываемую внутри IFrame , с помощью атрибута Src элемента Content . Целевая страница должна быть разрешена для отображения в кадре, в противном случае на странице SharePoint отображается следующая ошибка: Это содержимое не может отображаться в кадре.
Некоторые страницы содержат заголовок HTTP X-FRAME-OPTIONS в качестве механизма предотвращения атак ClickJacking . Необходимо тщательно оценить, поддерживает ли страница сценарий, на который может быть направлена атака ClickJacking, например страница банковских транзакций или страница покупки в интернет-магазине. Оценив риск того, что целевая страница будет обрамлена внешними страницами, можно удалить http-заголовок X-FRAME-OPTIONS , чтобы отобразить страницу в веб-части клиента.
По умолчанию страницы SharePoint содержат заголовок HTTP X-FRAME-OPTIONS . Если вы используете страницу SharePoint в качестве целевой для веб-части клиента, вы можете удалить заголовок X-FRAME-OPTIONS, добавив веб-часть AllowFraming.
В следующем фрагменте кода показано, как добавить веб-часть AllowFraming на страницу SharePoint:
<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<WebPartPages:AllowFraming ID="AllowFraming1" runat="server" />
<div>
Your content
</div>
</asp:Content>
Вы можете добавить настраиваемые свойства в веб-часть клиента. Пользовательские свойства определяются в файле Elements.xml компонента. Существует четыре типа настраиваемых свойств:
- string
- integer
- логический
- Перечисления
Вы можете определить, когда пользователь редактирует веб-часть клиента, с помощью маркера _editMode_ . Маркер _editMode_ возвращает значение 1, если веб-часть клиента находится в режиме редактирования, и значение 0 в противном случае.
Целевая страница может динамически изменять размер IFrame веб-части клиента. JavaScript можно использовать для выдачи postmessage с требуемой высотой и шириной. Пример кода, показывающий, как изменить размер части приложения, см. в статье Динамическое изменение размера частей приложения в приложениях для SharePoint.
Клиентские веб-части не поддерживают подключения к веб-части.
Пример
В следующем примере показан 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>