현재 작업중인 Sitecore 프로젝트에서 페이지 편집기가 바닐라 설치 페이지 편집기처럼 작동하지 않는 것으로 나타났습니다. 모든 자리 표시 자에 대해 편집기에서 해당 자리 표시 자에 초점을 맞추려면 두 번 클릭해야합니다. 첫 번째 클릭에서 도구 모음 팝업 포커스가 방금 클릭 한 자리 표시 자 또는 하위 레이아웃을 가리 키도록 변경되지만 두 번째 클릭시 해당 항목 만 강조 표시됩니다.Sitecore 페이지 편집기 자바 스크립트 오류
나는 우리가 얻는 JS 오류로 인한 것 같습니다. 오류는 다음과 같습니다.
Uncaught TypeError: Cannot read property 'sc-renderMoreSection' of undefined
renderTemplate
Sitecore.PageModes.ChromeControls.Base.extend.renderMoreSection
Sitecore.PageModes.ChromeControls.Base.extend.updateCommands
Sitecore.PageModes.ChromeControls.Base.extend.show
Sitecore.PageModes.SelectionFrame.Sitecore.PageModes.ChromeFrame.extend.showSides
value
Sitecore.PageModes.ChromeFrame.Base.extend.show
Sitecore.PageModes.SelectionFrame.Sitecore.PageModes.ChromeFrame.extend.show
value
select
Sitecore.PageModes.Chrome.Base.extend._clickHandler
c jquery.noconflict.js:16
d.event.handle jquery.noconflict.js:16
k.handle.m
JS는 Sitecore 설치에서 꽤 표준적인 것으로 보이는 스크립트에 있습니다. 템플릿이 정의되어 있기 때문에이 오류가 발생하는되는 방법은 !$sc.template[templateName]
성명에서
this.renderTemplate = function(templateName, template, data, options) {
if (!$sc.template[templateName]) {
$sc.template(templateName, template);
}
return $sc.tmpl(templateName, data, options);
};
입니다.
이전에 비슷한 사람이 있습니까? 누구든지이 문제의 원인을 파악할 수 있습니까?
우리는 Sitecore 6.5 및 jQuery를 1.7.2
편집 실행이 문제를 해결하는 일, 내가 발견 한 후 다음
Sitecore의 페이지 편집기는 jQuery를 우리의 버전을 덮어 쓰기되고, 1.7 .1은 충돌없는 모드에서 실행되는 자체 버전 인 1.5.1과 충돌하지 않는 모드로 실행됩니다. $$$ 별칭과 sitecore에 충돌이없는 스크립트는 $ sc와 충돌하지 않습니다. 그것의 끝에서, 우리의 $는 jquery 1.5.1입니다. (충돌을 올바르게 이해하면 표준 $로 되돌려 져야하므로) 퍼즐이 나옵니다.
페이지 편집기에 관한 한 중요하지 않습니다. 내 비틀기를 테스트하는 페이지는 1.7에 종속 된 jQuery를 사용하지 않습니다. 이 문제는 Sitecore 페이지 편집기 스크립트에 포함 된 "템플릿"jquery 플러그인과 관련됩니다. 식별 할 수없는 이유로이 모듈은 페이지 편집기에서 작동하지 않고 오류의 원인입니다. 우리의 다른 Sitecore 사이트는이 사이트를 포함하여 여전히 작동합니다. 템플릿 플러그인을 제거하면 다른 사이트가 현재 사이트와 같은 방식으로 작동합니다.
또한, Sitecore뿐만 아니라이 스크립트의 프로토 타입을 포함,하지만 jQuery를 또한 $ 기호하지만 Sitecore을 사용하기 때문에 충돌을 일으킬 수있는의 NoConflict 모드에서 코드에서 jQuery를 사용하는 $
모든 페이지 또는 일부 페이지에서 오류가 발생합니까? 어떤 버전의 Sitecore를 사용하고 있습니까? 자신의 프로젝트에서 jQuery 나 다른 라이브러리를 사용하고 있습니까? 어떤 버전입니까? – jammykam
페이지 편집기가 활성화되어 있으면 오류가 모든 페이지에 표시됩니다. 우리는 Sitecore 6.5와 jQuery 1.7.2를 사용하고 있습니다. –
Martijn과 같은 충돌을 배제하기위한 몇 가지 디버깅 단계를 제안합니다. 코드에서 자신의 JavaScript를 제거하고 여전히 오류가 있는지 확인하십시오 (Sitecore JS 만 해당). 어쨌든 충돌을 피하기 위해 클로저, 익명 함수 및 네임 스페이스를 사용해야합니다. http://blog.navigationarts.com/avoiding-jquerys-noconflict-mode-with-prototype-and-sitecore/ – jammykam