【问题标题】:Kentico v9 how can i detect when a user is in CMS desk with JavaScriptKentico v9 如何使用 JavaScript 检测用户何时在 CMS 桌面
【发布时间】:2016-08-09 21:14:30
【问题描述】:

我正在为 Google Analytics 中的自定义事件跟踪编写一些 JS。我想在网站更新时避免事件跟踪。

我确实有权更改主 .Master 页面后面的代码,因此向正文添加一个我无法检查的属性。

Javascript webpart 可能不是一个选项,因为这是全局代码,而不是特定于模板的代码。

【问题讨论】:

    标签: kentico


    【解决方案1】:

    我仍然会考虑可以放置在母版页上的 Web 部件,但仅当这是实时站点时才会呈现。 Here 是类似的问题。

    【讨论】:

    • 这就是我正在看的。我通常将我所有的 JS 文件包装在一个带有类资产的 div 中,只是为了保持家务。我将尝试实现这一点。我看到了devNet的帖子,但由于wepart要求而将其驳回。我现在正在重读。
    【解决方案2】:

    如果您正确使用 Kentico,您将拥有一个母版页,所有其他页面都从该母版页继承,因此母版页模板将是“全局的”,这是一个解决方案。

    您不仅可以使用 Roman 提到的链接中的宏(实际上不需要,因为 javascript webpart 无论如何只会在“实时站点”上呈现),而且您可以更进一步,让它只显示在如果您的域包含“暂存”,则具有这样的可见性宏的生产站点:

    {% !RootDocument.AbsoluteURL.Contains("staging.") @%}

    【讨论】:

    • 谢谢。我已经使用 webpart 实现了我的分析 js 文件,它按预期触发。
    【解决方案3】:

    这是非 webpart 方式。确保您的脚本块不在 head 标签中。需要在 body 标记中,否则您将获得 .Net 异常(与 Kentico 无关)。

    查找有效枚举列表。 LiveSite、EditLive、Preview 是我常用的几个。

    <script type="text/javascript">
        $(document).ready(function () {
    
            <%if(PageManager.ViewMode == CMS.PortalEngine.ViewModeEnum.LiveSite) {%>
    
                 $('#my-control').hide();
    
            <%}%>  
        }); 
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多