내 CRM 2011 양식의 모듈 패턴에 따라 JavaScript 로직을 고안했습니다. 양식을로드 할 때 때로는 'Crm object undefined'
으로 경고가 표시되지만 새로 고침 (단일 또는 여러 번)하면이 오류가 사라집니다 (원활하게 작동 함).CRM 2011의 JavaScript 모듈 패턴을 사용하여 생성하지 않는 객체
매우 고생하고 난 후에 나는 왜 이런 일이 일어나는 지 아직도 이해할 수 없습니다. 모듈 패턴과 관련이 있습니까? 왜냐하면 onLoad
함수가 잘 해고 되었기 때문에 나를 귀찮게하는 것은 때때로 Crm
객체가 생성되지 않는다는 것입니다.
var Crm = (function (FSX) {
var xrm = {
date: {
setDate: function (sourceAttribute, targetAttribute) {
// ... date setting logic ...
}
}
}
return xrm.date;
}(FSX));
function onLoad() {
if (typeof Crm === 'undefined') {
alert('Crm object undefined');
return;
}
Crm.setDate("fsx_source", "fsx_target");
}
FSX가이 파일 앞에로드 된 다른 스크립트 파일에서 만듭니다. FSX가 어떻게 생성되지 않을 수 있습니까? 자바 스크립트가 비정상적으로 동작 할 수도 있다는 것을 의미합니까? –
자바 스크립트가 아닙니다. CRM이 스크립트를로드하는 방법과 관련이 있습니다. 스크립트는 비동기 적으로로드됩니다. 위의 코드는 FSX가 완전히로드되기 전에 실행될 수 있습니다. 리본에 FSX 스크립트를로드 해보십시오. 리본 스크립트가 가장 먼저로드되고 잘하면 FSX가 작성된 후 스크립트가 실행됩니다. 위에서 언급 한 기사에는이 작업을 수행하는 방법에 대한 정보가 있습니다. –
예, 유용한 기사입니다. –