在Kentico 10网站的背景下防止FOUC

时间:2018-01-23 14:45:18

标签: zurb-foundation kentico

Zurb Foundation建议adding class="no-js" to the page html tag防止无格式内容Flash(FOUC)。

我们正在使用Kentico CMS。我正在寻找在主页中向html元素标记添加类的“Kentico方法”。我们正在使用CMS门户引擎。

我们要做什么 <html class="no-js"

如果使用Kentico宏或其API没有更平易近人的方式,那么愿意回归ASP.NET。

3 个答案:

答案 0 :(得分:3)

在您的母版页门户模板上,您可以添加一些这样的代码来进行修改:

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
    if (CurrentDocument != null)
    {          
        CMS.UIControls.ContentPage page= this.Page as CMS.UIControls.ContentPage;
        if (page != null)
        {
            page.XmlNamespace += " class='no-js'";
        }
    }
}
</script>

您也可以修改\ CMSPages \ PortalTemplate.aspx页面,但Kentico不支持或推荐该页面,因为它通常会破坏升级路径。

答案 1 :(得分:1)

我知道的最快捷方式是修改CMSPages\PortalTemplate.aspx以在那里添加您的课程。

<%@ Page Language="C#" AutoEventWireup="true" Inherits="CMSPages_PortalTemplate" ValidateRequest="false" MaintainScrollPositionOnPostback="true" EnableEventValidation="false" Codebehind="PortalTemplate.aspx.cs" %>

<%=DocType%>
<html <%=XHtmlNameSpace%> <%=XmlNamespace%> class="no-js">
<head id="head" runat="server" enableviewstate="false">
...

答案 2 :(得分:0)

“no-js”是à默认值。实际上,如果您的浏览器支持JavaScript,那么“no-is”类将被Modernizr引擎剥离。

Modernizr是一个JavaScript库,它将检查浏览器功能并更新html class =“”提及。

例如,如果您的浏览器支持flexbox技术,则flexbox类将添加到html类列表中。否则,将添加no-flexbox类。

稍后,当使用CSS框架(Bootstrap或Foundation)时,可以使用一些策略来模拟缺失的功能。