Настройка отображения: нет для пустых зон веб-частей
-
16-10-2019 - |
Вопрос
Кто-нибудь знает JavaScript для настройки display:none
в пустой зоне веб-части?Помню, однажды видел это на сайте издательства, но сейчас не могу найти.
Это сделано для того, чтобы избежать заполнения и интервалов в зоне веб-части, когда к ней не добавлена веб-часть.
Решение
На страницах веб-частей WSS 3 есть TD, содержащие WebPartZones, и эти TD имеют имя и идентификатор _invisibleIfEmpty.Затем каждая страница содержит такой JavaScript:
<script language="javascript">if(typeof(MSOLayout_MakeInvisibleIfEmpty) == "function") {MSOLayout_MakeInvisibleIfEmpty();}</script>
Функция MSOLayout_MakeInvisibleIfEmpty делает их невидимыми...
/WW
Другие советы
Или, как это сказано в макете страницы публикации SharePoint:
<SharePointWebControls:ScriptBlock runat="server">
if(typeof(MSOLayout_MakeInvisibleIfEmpty) == "function")
{MSOLayout_MakeInvisibleIfEmpty();}</SharePointWebControls:ScriptBlock>
Почему-то MSOLayout_...у меня это не сработало, поэтому я написал следующий код jQuery, который тоже работает, а также проверяет, есть ли внутри этой ячейки только меню, прежде чем скрыть его.
$('[name="_invisibleIfEmpty"]').filter(function () {
return $.trim($(this).html()).length == 0 || $(this).children("menu").length;
}).hide();