Sitecore 7.2在组件添加到组件区域时在组件上启动JavaScript

Sitecore 7.2在组件添加到组件区域时在组件上启动JavaScript,javascript,sitecore,sitecore7,sitecore7.2,Javascript,Sitecore,Sitecore7,Sitecore7.2,这似乎只是Sitecore的一个问题。但当我有一个组件,比如一个滑块,在加载时启动JavaScript,并将其放到一个组件区域时,它会在客户端这样做。因此,在我按下保存按钮或重新加载页面之前,JavaScript不会启动。这是因为运行在文档上的JavaScript已准备就绪 有人有解决这个问题的有效方法吗?我正在考虑在页面处于编辑器模式时触发加载事件,并在非编辑器模式下正常运行。在页面编辑器模式下,您需要禁用滑块的JavaScript。要执行此操作,请检查JavaScript属性Sitecore

这似乎只是Sitecore的一个问题。但当我有一个组件,比如一个滑块,在加载时启动JavaScript,并将其放到一个组件区域时,它会在客户端这样做。因此,在我按下保存按钮或重新加载页面之前,JavaScript不会启动。这是因为运行在文档上的JavaScript已准备就绪


有人有解决这个问题的有效方法吗?我正在考虑在页面处于编辑器模式时触发加载事件,并在非编辑器模式下正常运行。

在页面编辑器模式下,您需要禁用滑块的JavaScript。要执行此操作,请检查JavaScript属性
Sitecore.PageModes.PageEditor
,该属性可通过以下函数完成:

function isPageEditor() {
    if (typeof Sitecore == "undefined") {
        return false;
    }
    if (typeof Sitecore.PageModes == "undefined" || Sitecore.PageModes == null) {
        return false;
    }
    return Sitecore.PageModes.PageEditor != null;
}
然后,滑块组件的JavaScript如下所示:

$(document).ready(function() {
    if (isPageEditor() == false) {
        //slider setup code here   
    }
}

我喜欢你的解决方案,但我希望打开我的JavaScript。它目前不起作用,因为我的滑块代码是通过RequireJS加载到整个页面的文档中的。这意味着当我在编辑模式下将滑块放在页面上时,该函数不会被告知运行。看起来,当页面处于页面编辑器模式并且绘制了滑块HTML时,我必须为滑块组件触发一个事件,以使滑块JS运行。这将迫使它运行,即使我只是把它丢在页面上。啊,我知道我现在和你在一起了。通常人们想做相反的事情;-)我通常不会推荐这个;但是,如果您的组件中有一些javascript,或者至少有一个对初始化位的调用,那么它可能会工作。我将很快更新我的答案…我们正在研究解决方案。我们使用的是slick carousel,它绘制所有滑块图像,调整大小,最后使其成为滑块。所有这些都是通过Javascript实现的。当我把我的控件放在页面上时,它只会绘制HTML框。我需要让Slick运行它的代码,并为用户制作一个滑块。谢谢你的帮助。非常感谢您的代码。这个问题太老了@dnstommy,你找到解决问题的方法了吗?没有,当滑动条被放下时,你只是挂了一个灰度图像。然后在加载页面时将其真实加载。