#javascript #jquery #sharepoint #calendar
#javascript #jquery #sharepoint #Календарь
Вопрос:
У меня есть основной календарь с другим наложенным календарем с вспомогательного сайта.
Я использую библиотеку SPServices и могу извлекать события календаря, но не события из календаря дочернего сайта. Можно ли этого достичь с помощью SPServices или мне нужен другой подход?
Я обнаружил, что, когда я открываю календарь, несколько запросов POST ajax обращаются к /CalendarServices.ashx, чтобы получить наложенные события календаря. Я пытался сделать запрос к этому обработчику с помощью jQuery, но, похоже, вы не можете получить доступ к этому обработчику напрямую.
Есть идеи, ребята?
Спасибо
Ответ №1:
Хорошо, вот в чем фокус. Наложенный календарь привязан к представлению списка
1 / Выясните, в представление какого списка вы добавляете наложенный календарь (возможно, это представление по умолчанию, которое является Календарем)
2/ Используйте JSOM для получения объекта view
var context = SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle(listName);
var view = list.get_views().getByTitle('Calendar');
context.load(view);
3/ Зарегистрируйте информацию о просмотре на консоли, чтобы пройти через ее участника. Следуйте по пути к свойству view.$ 5_0.$ H_0.HtmlSchemaXml, вы получите что-то вроде приведенного ниже
(ПРИМЕЧАНИЕ: я работаю с SP 2013, поэтому вам может потребоваться еще раз проверить правильный путь к свойству)
4 / То, что вы ищете, — это раздел AggregationCalendar, в моем случае их всего 2. Отсюда вы можете использовать идентификатор списка для запроса элементов списка.
Получайте удовольствие 🙂