【问题标题】:How to force dotnetnuke to render into IE9如何强制 dotnetnuke 渲染到 IE9
【发布时间】:2013-02-26 11:17:32
【问题描述】:

我的 dotnetnuke 网站在 IE9 中看起来不错,但在 IE8 和 IE7 中会中断。

我已经尝试过元标记:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

但如果我把它放在 ascx (第一行)但它不会出现。如果我把它放在页面设置 - 标签中,它会显示在标题的底部。所以它也不能那样工作,如何将标签放在顶部或有其他方法吗?

提前致谢。

【问题讨论】:

  • 您可以访问 IIS 吗?

标签: html internet-explorer-9 dotnetnuke ascx


【解决方案1】:

您可以使用一些代码来添加指令。在您的皮肤中(或者,在每个皮肤控件引用的控件中),添加以下内容:

<script runat="server">
    private void Page_PreRender(object sender, EventArgs e)
    {
        var meta = new HtmlMeta();
        meta.Content = "IE=edge";
        meta.HttpEquiv = "X-UA-Compatible";
        this.Page.Header.Controls.AddAt(0, meta);
    }
</script>

这要求AutoEventWireupControl directive 中为真。否则,您还需要覆盖 OnInit 或类似的东西来手动连接事件。

【讨论】:

  • 我试过这个,但我得到一个错误:错误 BC30205: End of statement expected.
  • 这段代码 sn-p 在 C# 中。要么将其翻译成 VB,要么将 Control 指令中的 Language 更改为 C#。
【解决方案2】:

我不建议这样做,但您可能需要将其添加到网站根目录中的 default.aspx 中,如果您这样做,则需要记住在将来升级 DNN 时再次执行此操作.

【讨论】:

    【解决方案3】:

    我以前没有见过这样做,但这是在使用 IE 9 时模拟 IE 8/7 的方式:

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
    

    如果没有,那就试试这个:

    <meta http-equiv="X-UA-Compatible" content="IE=9">
    

    将这些与其他元标记一起添加到您的标题中。这应该会强制 IE10 呈现为 IE9。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 2012-07-22
      • 2017-11-13
      • 1970-01-01
      • 2020-02-12
      • 2015-05-22
      相关资源
      最近更新 更多