EXECUTEDELAYUNTILSSPRICTORED с SP.JS, когда ожидается ожидаемый объект режима отладки

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/76370

  •  10-12-2019
  •  | 
  •  

Вопрос

У меня в настоящее время есть файл JavaScript, который загружается в мои страницы SharePoint.
jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction(), "sp.js");
});

myfunction = function(){
 /*Do something here.*/
};
.

Теперь JavaScript работает просто хорошо, однако на странице списка она предотвращает загрузку ленты на вкладку «Список». В консоли я получаю ниже ошибки.

Script5007: Ожидаемый объект init.debug.js, линия 5153 символ 5 Ошибка.

Даже если я комментирую всю функцию, чтобы она выглядела точно, как указано выше, я все еще получаю сообщение об ошибке.

Я заметил, что если я изменим «SP.JS» на «SP.DEBUG.JS», я не получаю сообщение об ошибке. От поиска сценариев, которые загружаются на странице, это имеет смысл как SP.DEBUG.JS загружен и не SP.JS. Я не очень хочу поставить sp.debug.js в код JavaScript, что и достигает производственных серверов, они не будут использовать sp.debug.js. Я никогда не замечаю, что это произойдет раньше с любым кодом, имеющим executeordeLayUntilscriptloadloaded (jsfunction (), "sp.js"). Есть ли способ получить его для работы в обеих средах, таких как с помощью a #ifdebug stake в JavaScript? Или какая-то другая идея.

Это было полезно?

Решение

Вы используете ExecuteOrdeLayUntilscriptledword неправильно, вы должны использоватьИмя функции, не выполняйте его.

Вот так:

jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction, "sp.js");
});
.

Обратите внимание, что удалил «()» из Myфункции.Теперь он должен работать, как ожидалось,

Другие советы

Не используйте jQuery для таких целей, вместо этого используйте встроенные функции SharePoint:

var myFunction = function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
}
_spBodyOnLoadFunctionNames.push("myFunction");
.

или анонимная функция

_spBodyOnLoadFunctionNames.push(function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
});
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top