Поделиться через


Схема определения клиентской веб-части

Область применения: 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

Замечания

Элемент 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_&amp;intProp=_intProp_&amp;boolProp=_boolProp_&amp;enumProp=_enumProp_&amp;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>

См. также