asp.NetサーバコントロールのIE 10での互換性の問題
26624 ワード
多くのIE 10を使用する子供靴たちがこの問題を発見したと信じています.以下は本人がIE 10標準モードで発生した問題です.IE 10は1つのバージョンだけではありません.
1.サーバコントロールの属性が失われ、aspxページで定義されたTextBox:
IE 10標準モードでブラウズすると幅が間違っていたので、ソースコードを開くとこうなりました.
width属性がなくなりました
2.たまにページエラーを発見する_doPostBackが見つからない
現在、上記の2つの点について、第1反応は互換性の問題であり、いくつかの資料を調べたところ、やはりIE 10のバグであり、マイクロソフトの製品に不満を禁じ得ず、新しいブラウザは自分のサーバーコントロールにも互換性の問題がある.
一般ユーザーはブラウザを設定して互換モードで実行するだけで解決できますが、開発者はどのようにこの問題を解決しますか?
VSプロジェクトにAppを加えるBrowsersフォルダ、ie.browserファイル、ファイル内容帖の下の内容:
これは、マイクロソフトの公式資料を参照して、サイトベースの修復方法です.
.NET 4ブラウザ更新NuGetパッケージ-http://nuget.org/List/Packages/App_BrowsersUpdate
.NET 2.0ブラウザ更新NuGetパッケージ-http://nuget.org/List/Packages/App_BrowsersUpdate.net20
もう1つは、サーバ上のすべてのサイトの互換性の問題を解決するパッチです.
.NET 4 - http://support.microsoft.com/kb/2600088
.NET 2.0 - http://support.microsoft.com/kb/2600100
また、ブロガーはプロジェクトに大量のdevexpressサーバーコントロールを使用しており、苦労している.以上のように修復しても、VSが持参したコントロールには問題はないが、devコントロールには多くのエラーがあり、最終的には修復されず、ユーザーに互換性モードを使用させるしかない.
マイクロソフトが次のブラウザをリリースするときだけこの問題を修正してほしい.
参考資料:
http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders
http://msdn.microsoft.com/zh-cn/library/bb763179.aspx
http://blogs.msdn.com/b/webtopics/archive/2008/09/05/configuring-iis-to-work-around-webpage-display-issues-caused-by-internet-explorer-8-0.aspx
1.サーバコントロールの属性が失われ、aspxページで定義されたTextBox:
IE 10標準モードでブラウズすると幅が間違っていたので、ソースコードを開くとこうなりました.
width属性がなくなりました
2.たまにページエラーを発見する_doPostBackが見つからない
現在、上記の2つの点について、第1反応は互換性の問題であり、いくつかの資料を調べたところ、やはりIE 10のバグであり、マイクロソフトの製品に不満を禁じ得ず、新しいブラウザは自分のサーバーコントロールにも互換性の問題がある.
一般ユーザーはブラウザを設定して互換モードで実行するだけで解決できますが、開発者はどのようにこの問題を解決しますか?
VSプロジェクトにAppを加えるBrowsersフォルダ、ie.browserファイル、ファイル内容帖の下の内容:
1 <browsers>
2 <!-- Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325) -->
3 <browser id="IE6Plus" parentID="IE">
4 <identification>
5 <capability name="majorversion" match="^[6-9]|\d{2,}$" />
6 </identification>
7
8 <capabilities>
9 <capability name="ecmascriptversion" value="3.0" />
10 <capability name="jscriptversion" value="5.6" />
11 <capability name="javascript" value="true" />
12 <capability name="javascriptversion" value="1.5" />
13 <capability name="msdomversion" value="${majorversion}.${minorversion}" />
14 <capability name="w3cdomversion" value="1.0" />
15 <capability name="ExchangeOmaSupported" value="true" />
16 <capability name="activexcontrols" value="true" />
17 <capability name="backgroundsounds" value="true" />
18 <capability name="cookies" value="true" />
19 <capability name="frames" value="true" />
20 <capability name="javaapplets" value="true" />
21 <capability name="supportsCallback" value="true" />
22 <capability name="supportsFileUpload" value="true" />
23 <capability name="supportsMultilineTextBoxDisplay" value="true" />
24 <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
25 <capability name="supportsVCard" value="true" />
26 <capability name="supportsXmlHttp" value="true" />
27 <capability name="tables" value="true" />
28 <capability name="supportsAccessKeyAttribute" value="true" />
29 <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
30 <capability name="vbscript" value="true" />
31 </capabilities>
32 </browser>
33
34 <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
35 <browser id="IE6to9" parentID="IE6Plus">
36 <identification>
37 <capability name="majorversion" match="^[6-9]$" />
38 </identification>
39 </browser>
40
41 <!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
42 <browser id="IE7" parentID="IE6to9">
43 <identification>
44 <capability name="majorversion" match="^7$" />
45 </identification>
46 <capabilities>
47 <capability name="jscriptversion" value="5.7" />
48 </capabilities>
49 </browser>
50
51 <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
52 <browser id="IE8" parentID="IE6to9">
53 <identification>
54 <capability name="majorversion" match="^8$" />
55 </identification>
56 <capabilities>
57 <capability name="jscriptversion" value="6.0" />
58 </capabilities>
59 </browser>
60
61 <!-- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) -->
62 <browser id="IE9" parentID="IE6to9">
63 <identification>
64 <capability name="majorversion" match="^9$" />
65 </identification>
66 <capabilities>
67 <capability name="jscriptversion" value="6.0" />
68 </capabilities>
69 </browser>
70
71 <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
72 <browser id="IE10Plus" parentID="IE6Plus">
73 <identification>
74 <capability name="majorversion" match="\d{2,}" />
75 </identification>
76 <capabilities>
77 <capability name="jscriptversion" value="6.0" />
78 </capabilities>
79 </browser>
80
81 <gateway id="IEbeta" parentID="IE">
82 <identification>
83 <capability name="letters" match="^([bB]|ab)" />
84 </identification>
85
86 <capture>
87 </capture>
88
89 <capabilities>
90 <capability name="beta" value="true" />
91 </capabilities>
92 </gateway>
93 </browsers>
これは、マイクロソフトの公式資料を参照して、サイトベースの修復方法です.
.NET 4ブラウザ更新NuGetパッケージ-http://nuget.org/List/Packages/App_BrowsersUpdate
.NET 2.0ブラウザ更新NuGetパッケージ-http://nuget.org/List/Packages/App_BrowsersUpdate.net20
もう1つは、サーバ上のすべてのサイトの互換性の問題を解決するパッチです.
.NET 4 - http://support.microsoft.com/kb/2600088
.NET 2.0 - http://support.microsoft.com/kb/2600100
また、ブロガーはプロジェクトに大量のdevexpressサーバーコントロールを使用しており、苦労している.以上のように修復しても、VSが持参したコントロールには問題はないが、devコントロールには多くのエラーがあり、最終的には修復されず、ユーザーに互換性モードを使用させるしかない.
マイクロソフトが次のブラウザをリリースするときだけこの問題を修正してほしい.
補足、web.configにHTTP応答ヘッダを追加してブラウザレンダリングモードを変更
参考資料:
http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders
http://msdn.microsoft.com/zh-cn/library/bb763179.aspx
http://blogs.msdn.com/b/webtopics/archive/2008/09/05/configuring-iis-to-work-around-webpage-display-issues-caused-by-internet-explorer-8-0.aspx