2013-02-26 52 views
2

我的dotnetnuke網站在IE9中看起來很好,但在IE8 & IE7中中斷。如何強制將dotnetnuke渲染到IE9中

我已經試過了meta標籤:

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

,但如果我把它放在ASCX(1號線),但它沒有顯示出來。如果我把它放在頁面設置 - 標籤中,它會顯示在標題的底部。所以它也沒有這樣工作,如何讓標籤在頂部或有任何其他方式?

在此先感謝。

+0

你有訪問IIS嗎? – notandy 2013-02-27 15:10:12

回答

3

您可以使用一些代碼來添加指令。在你的皮膚(或者,在由每個皮膚控制引用控制),添加以下內容:

<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或類似的東西來手動連接事件。

+0

我試過這個,但是我得到一個錯誤: 錯誤BC30205:聲明期滿。 – 2013-03-18 13:33:22

+1

此代碼片段位於C#中。將其翻譯爲VB,或將Control語句中的'Language'更改爲C#。 – bdukes 2013-03-18 14:06:15

+0

謝謝,它現在工作正常! – 2013-03-20 15:10:06

2

我不建議這樣做,但您可能需要將此添加到網站根目錄下的default.aspx中,如果您這樣做了,則需要記住在升級DNN時再次執行此操作未來。

0

我還沒有看到這種情況之前,但這是它是如何使用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。