Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sitecore页面编辑器Javascript错误_Sitecore_Sitecore6_Page Editor - Fatal编程技术网

Sitecore页面编辑器Javascript错误

Sitecore页面编辑器Javascript错误,sitecore,sitecore6,page-editor,Sitecore,Sitecore6,Page Editor,在我目前正在进行的sitecore项目中,我们注意到我们的页面编辑器的行为与普通安装的页面编辑器不同。对于每个占位符,我们必须单击两次以使编辑器聚焦于该占位符。在第一次单击时,工具栏弹出式焦点将更改为指向刚才单击的占位符或子布局,但在第二次单击时仅高亮显示该项目 我相信这是由于JS错误导致的。错误是: Uncaught TypeError: Cannot read property 'sc-renderMoreSection' of undefined renderTemplate Site

在我目前正在进行的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安装中似乎非常标准。发生此错误的方法是

this.renderTemplate = function(templateName, template, data, options) {
   if (!$sc.template[templateName]) {
      $sc.template(templateName, template);
   }
  return $sc.tmpl(templateName, data, options);
};
中$sc.template[templateName]
语句,因为模板未定义

以前有人遇到过类似的事情吗?有人知道是什么导致了这个问题吗

我们正在运行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在该脚本中也包含prototype,但未映射到$

请尝试在代码中以NoConflict模式使用jQuery,因为jQuery使用$符号,但Sitecore也使用,这可能会导致冲突

jQuery.noConflict();
执行此操作后,在调用jQuery脚本或创建嵌入jQuery脚本的新函数时,需要使用jQuery而不是$,如下面的链接所述


另请参见

此问题是由于安装了共享源模块“分类法”造成的。在Sitecore 6.5中,此模块似乎不能很好地使用页面编辑器


它强制加载jQuery,然后对其调用无冲突,将其别名为$sc。然后,当页面编辑器的脚本实际加载时,$sc永远不会被jQuery的新副本覆盖,因为$sc不是未定义的。这意味着编辑器脚本加载的插件不在$sc变量上,这可能会导致整个系统停止正常运行。

您是在所有页面上还是仅在其中一些页面上看到错误?您使用的是什么版本的Sitecore?您是否在自己的项目中使用jQuery或其他库?什么版本?当页面编辑器处于活动状态时,每个页面上都会出现错误。我们正在使用Sitecore 6.5和jQuery 1.7.2一些调试步骤来排除Martijn建议的冲突,删除代码中自己的JavaScript,看看是否仍然存在错误(因此这只是Sitecore JS)。无论如何,您应该使用闭包、匿名函数和名称空间来避免冲突:我们正在做所有这些事情。我禁用了我们的javascript,没有任何更改。Sitecore 6.5及以后版本在noConflict模式下使用jQuery,映射到$sc,因此它不应该是一个冲突问题。以前的版本使用Prototype,所以它曾经是一个$conflicts的问题。您是对的,这应该在Sitecore版本6.5修订版110419中修复。但是,他得到的错误看起来确实与jQuery noConflict模式相关的错误非常相似。所以我应该试试这个。是的,我也是这么想的,但这就是为什么我问他用的是什么版本。我认为他需要尝试一些基本的调试步骤来排除问题所在,这不会有什么坏处。至于调试,Sitecore的页面编辑器正在覆盖我们的jQuery版本1.7.1,我们在无冲突模式下运行它自己的版本1.5.1,它在无冲突模式下运行。就页面编辑器而言,这并不重要。我正在测试调整的页面没有使用依赖于1.7的jQuery。这个问题与sitecore页面编辑器脚本包含的“模板”jQuery插件有关。由于我无法确定的原因,此模块在页面编辑器中不工作,是错误的来源。Sitecore也包括prototype,但没有映射到$Updated my main question(更新了我的主要问题)以及此评论和一些附加细节。