0

我在調查爲什麼Windows模式對話框沒有從Web.Config文件獲取IE 7兼容性設置。Modal對話框沒有從Web.Config獲取IE 7兼容性設置

目前,我們在web.config中的以下代碼:

<httpProtocol> 
    <customHeaders> 
    <!-- This forces IE7 compatibility for all pages --> 
    <add name="X-UA-Compatible" value="IE=EmulateIE7"/> 
    </customHeaders> 
</httpProtocol> 

這工作得很好,除了我的模態對話框的大多數頁面。這個模式對話框基本上存在於另一個.aspx文件中。你可以把它想成exampleWebPage.aspx。

var returnvalue = OpenModal("../exampleLocation/exampleModalDialog.aspx", 
"dialogWidth:1024px;dialogHeight:740px,center:yes;help:no;status:no;resizable:no;scroll:no;"); 

進一步挖掘身邊後,我發現OpenModal()是我們自己的函數最終調用window.showModalDialog():我的模態對話框中exampleModalDialog.aspx

這是怎樣的模式對話框從exampleWebPage.aspx調用發現這與我在網上找到的問題有關。

當我在IE 11中按F12例如webPage.aspx頁面時,我看到文檔模式是IE 7

然而,當我再次按F12在IE11打開模態對話框後,我得到如下:瀏覽器模式:IE 11號文件方式:IE 5怪癖

我已閱讀本SO帖子:Force IE8 Into IE7 Compatiblity Mode

我到目前爲止已經嘗試解決這個問題,它將進入exampleModalDialog.aspx並在標題標籤後添加以下代碼。

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

因此,它看起來像這樣:

<html xmlns="http://www.w3.org/1999/xhtml" > 
    <head runat="server"> 
     <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 
     <meta name="..." content="..."/> 

不幸的是,這並不工作。有什麼建議麼?

回答

0

問題是您的對話框中的HTML無效。

具體而言,最常見的原因是如果您的代碼頂部沒有DOCTYPE聲明;無論您使用哪種X-UA兼容設置,這都會迫使IE進入怪異模式。

HTML代碼中的其他錯誤也可以觸發IE進入怪癖模式,但缺少的文檔類型是最常見的。

由於您似乎在使用xhtml,因此您需要使用其中一種xhtml文檔類型。你可以找到有效的doctype here的名單,但我大概是這樣的一個建議:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

該行添加到您的代碼的頂部,在<html>標籤上面,應該停止進入怪癖模式。