【发布时间】:2016-08-09 21:14:30
【问题描述】:
我正在为 Google Analytics 中的自定义事件跟踪编写一些 JS。我想在网站更新时避免事件跟踪。
我确实有权更改主 .Master 页面后面的代码,因此向正文添加一个我无法检查的属性。
Javascript webpart 可能不是一个选项,因为这是全局代码,而不是特定于模板的代码。
【问题讨论】:
标签: kentico
我正在为 Google Analytics 中的自定义事件跟踪编写一些 JS。我想在网站更新时避免事件跟踪。
我确实有权更改主 .Master 页面后面的代码,因此向正文添加一个我无法检查的属性。
Javascript webpart 可能不是一个选项,因为这是全局代码,而不是特定于模板的代码。
【问题讨论】:
标签: kentico
我仍然会考虑可以放置在母版页上的 Web 部件,但仅当这是实时站点时才会呈现。 Here 是类似的问题。
【讨论】:
如果您正确使用 Kentico,您将拥有一个母版页,所有其他页面都从该母版页继承,因此母版页模板将是“全局的”,这是一个解决方案。
您不仅可以使用 Roman 提到的链接中的宏(实际上不需要,因为 javascript webpart 无论如何只会在“实时站点”上呈现),而且您可以更进一步,让它只显示在如果您的域包含“暂存”,则具有这样的可见性宏的生产站点:
{% !RootDocument.AbsoluteURL.Contains("staging.") @%}
【讨论】:
这是非 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>
【讨论】: