我正面临网站改进的辅助功能错误,我的网页没有定义“lang标记”。我怎样才能在Kentico中实现这个目标?
答案 0 :(得分:2)
实现这一目标可能有两种方法。一个是通过Kentico的C#.NET代码,另一个是通过Javascript代码。我为您提供了两种解决方案
为了解决此问题,您已为工具修复了两个标记,以停止指向辅助功能错误。你必须设置" lang"以及" xml:lang"标签。通过纯Javascript实现此目的的一种方法如下。我提出这个解决方案,因为它独立于任何平台。
(function() {
document.getElementsByTagName('html')[0].setAttribute('lang', 'en-US');
document.getElementsByTagName('html')[0].setAttribute('xml:lang','en-US');
})();
您可以替换' en'使用您选择的语言正确指出正确的语言
在Kentico中,您可以通过将此代码放在主模板中来实现此目的,以便可以在所有页面上添加这些标记。
在您的Kentico主模板中,只需添加一个Head HTML Web部件并将此代码放入其中。
<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)
{
string lang= CMS.Localization.LocalizationContext.CurrentCulture.CultureCode;
page.XmlNamespace += " lang=\"" + lang + "\"";
page.XmlNamespace += " xml:lang=\"" + lang + "\"";
}
}
}
</script>
这应该可以解决所有问题。
答案 1 :(得分:0)
推荐的方法是打开〜/ CMSPages / PortalTemplate.aspx 网络表单,然后根据需要手动编辑 lang 属性。
请注意,一般来说,不建议修改Kentico系统文件,但在这种情况下,这是最好的方法。请记住记录您所做的所有更改。
编辑:
其他不涉及任何自定义的解决方案是使用 CMSPortalTemplatePage web.config键设置自定义 PortalTemplate 文件的路径。通过这种方式,您可以克隆Kentico的PortalTemplate.aspx,在此克隆文件中进行修改并保留原始文件。
可能的用法:
<add key="CMSPortalTemplatePage" value="~/CMSPages/CustomPortalTemplate.aspx" />