디버그 모드 객체가 예상되는 경우 sp.js로 executeRordElayuntInciptsscript로드되었습니다

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

  •  10-12-2019
  •  | 
  •  

문제

현재 SharePoint 페이지에로드되는 JavaScript 파일이 있습니다.

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가 아닌이 의미가 있습니다. 프로덕션 서버에 도달 할 때와 같이 JavaScript 코드에 sp.debug.js를 넣으려면 sp.debug.js를 사용하지 않을 것입니다. ExecuteRordElayUntilScriptOlded (JSFunction (), "sp.js")를 가진 코드가있는 모든 코드를 사용하기 전에이 일이 발생하지 않았습니다. JavaScript에서 #ifdebug 문과 같은 두 환경에서 작동하도록이를 얻는 방법이 있습니까? 또는 다른 아이디어.

도움이 되었습니까?

해결책

ExecuteRordElayuntilscriptLoaded 잘못 사용해야합니다.함수 이름은 그것을 실행하지 않습니다.

다음과 같이 :

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

MyFunction에서 "()"를 제거합니다.이제는 예상대로 작동해야합니다

다른 팁

이러한 목적으로 jQuery를 사용하지 마십시오. SharePoint Embedded 기능을 대신 사용하십시오 :

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

또는 익명 함수

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top