Выполнение функции JavaScript после инициализации SharePoint

У меня есть собственный JS-скрипт, который я загружаю в SharePoint, и у меня возникают проблемы с выполнением моего метода инициализации после завершения SP с его собственной инициализацией.

_spBodyOnLoadFunctionNames

Сначала я попробовал «официальный» способ и добавил имя моей функции в список выполняемых функций после загрузки тела с помощью _spBodyOnLoadFunctionNames.push("myInitMethod");, но это не срабатывает при каждой загрузке страницы, я не могу на это полагаться.

ExecuteOrDelayUntilScriptLoaded

Затем я попытался использовать функцию ExecuteOrDelayUntilScriptLoaded(myInitMethod, "sp.js");, но она также не срабатывает при каждой загрузке страницы.

Оба способа работают -, но не каждый раз. Я предполагаю, что мой скрипт загружается иногда до инициализации SP. Это происходит в основном в Chrome, но также и в IE.

Как я могу убедиться, что мой скрипт будет выполнен, когда SP будет готов?


Примечание:Наблюдается интересное поведение, когда страница загружается, а объект SP не полностью инициализирован (зарегистрированные функции в ExecuteOrDelayUntilScriptLoaded не вызывались ):Как только я нажимаю на якорь «Навигация вверх» на странице (, где вы можете увидеть иерархию дочерних сайтов )загружаются следующие файлы и вызывается моя функция инициализации (, зарегистрированная в ExecuteOrDelayUntilScriptLoaded )!

  • core.debug.js
  • sp.core.debug.js
  • ScriptResx.ashx
  • sp.ui.dialog.debug.js
  • sp.runtime.debug.js
  • sp.debug.js

Итак, после этого нажатия -все в порядке, но почему не загружается страница, как должно быть?

5
задан Alex Angas 2 February 2015 в 02:57
поделиться