У меня есть собственный JS-скрипт, который я загружаю в SharePoint, и у меня возникают проблемы с выполнением моего метода инициализации после завершения SP с его собственной инициализацией.
_spBodyOnLoadFunctionNames
Сначала я попробовал «официальный» способ и добавил имя моей функции в список выполняемых функций после загрузки тела с помощью _spBodyOnLoadFunctionNames.push("myInitMethod");
, но это не срабатывает при каждой загрузке страницы, я не могу на это полагаться.
ExecuteOrDelayUntilScriptLoaded
Затем я попытался использовать функцию ExecuteOrDelayUntilScriptLoaded(myInitMethod, "sp.js");
, но она также не срабатывает при каждой загрузке страницы.
Оба способа работают -, но не каждый раз. Я предполагаю, что мой скрипт загружается иногда до инициализации SP. Это происходит в основном в Chrome, но также и в IE.
Как я могу убедиться, что мой скрипт будет выполнен, когда SP будет готов?
Примечание:Наблюдается интересное поведение, когда страница загружается, а объект SP не полностью инициализирован (зарегистрированные функции в ExecuteOrDelayUntilScriptLoaded не вызывались ):Как только я нажимаю на якорь «Навигация вверх» на странице (, где вы можете увидеть иерархию дочерних сайтов )загружаются следующие файлы и вызывается моя функция инициализации (, зарегистрированная в ExecuteOrDelayUntilScriptLoaded )!
Итак, после этого нажатия -все в порядке, но почему не загружается страница, как должно быть?