ASP 해결NET 서버 컨트롤이 IE10에서 호환되지 않는 문제
1. 서버 컨트롤 속성 손실, aspx 페이지에 정의된 TextBox:
IE10 표준 모드에서 찾아보니 너비가 맞지 않아 소스 코드가 켜져 있었습니다.
< input name = "txt"type = "text"id = "txt"/> width 속성이 없습니다
2. 가끔 페이지 오류 발견DoPostBack을 찾을 수 없음
현재 상기 두 가지를 발견했다. 첫 번째 반응은 호환성 문제이다. 몇 가지 자료를 찾았는데 과연 IE10의 버그였다. 마이크로소프트 제품에 대한 불만을 금치 못했다. 새로운 브라우저는 자신의 서버 컨트롤러까지 호환성 문제가 존재한다.
일반 사용자는 브라우저를 설정하여 호환 모드에서 실행하기만 하면 해결할 수 있지만 개발자는 어떻게 이 문제를 해결합니까?
VS 프로젝트에 App 추가Browsers 폴더, ie.browser 파일, 파일 컨텐트 게시물 아래:
<browsers>
<!-- Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325) -->
<browser id="IE6Plus" parentID="IE">
<identification>
<capability name="majorversion" match="^[6-9]|\d{2,}$" />
</identification>
<capabilities>
<capability name="ecmascriptversion" value="3.0" />
<capability name="jscriptversion" value="5.6" />
<capability name="javascript" value="true" />
<capability name="javascriptversion" value="1.5" />
<capability name="msdomversion" value="${majorversion}.${minorversion}" />
<capability name="w3cdomversion" value="1.0" />
<capability name="ExchangeOmaSupported" value="true" />
<capability name="activexcontrols" value="true" />
<capability name="backgroundsounds" value="true" />
<capability name="cookies" value="true" />
<capability name="frames" value="true" />
<capability name="javaapplets" value="true" />
<capability name="supportsCallback" value="true" />
<capability name="supportsFileUpload" value="true" />
<capability name="supportsMultilineTextBoxDisplay" value="true" />
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
<capability name="supportsVCard" value="true" />
<capability name="supportsXmlHttp" value="true" />
<capability name="tables" value="true" />
<capability name="supportsAccessKeyAttribute" value="true" />
<capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
<capability name="vbscript" value="true" />
</capabilities>
</browser>
<!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
<browser id="IE6to9" parentID="IE6Plus">
<identification>
<capability name="majorversion" match="^[6-9]$" />
</identification>
</browser>
<!-- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0;) -->
<browser id="IE7" parentID="IE6to9">
<identification>
<capability name="majorversion" match="^7$" />
</identification>
<capabilities>
<capability name="jscriptversion" value="5.7" />
</capabilities>
</browser>
<!-- 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) -->
<browser id="IE8" parentID="IE6to9">
<identification>
<capability name="majorversion" match="^8$" />
</identification>
<capabilities>
<capability name="jscriptversion" value="6.0" />
</capabilities>
</browser>
<!-- 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) -->
<browser id="IE9" parentID="IE6to9">
<identification>
<capability name="majorversion" match="^9$" />
</identification>
<capabilities>
<capability name="jscriptversion" value="6.0" />
</capabilities>
</browser>
<!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
<browser id="IE10Plus" parentID="IE6Plus">
<identification>
<capability name="majorversion" match="\d{2,}" />
</identification>
<capabilities>
<capability name="jscriptversion" value="6.0" />
</capabilities>
</browser>
<gateway id="IEbeta" parentID="IE">
<identification>
<capability name="letters" match="^([bB]|ab)" />
</identification>
<capture>
</capture>
<capabilities>
<capability name="beta" value="true" />
</capabilities>
</gateway>
</browsers>
이것은 사이트 기반 복구 방식으로 Microsoft 공식 자료를 참조합니다.
.NET 4 브라우저 업데이트 NuGet 패키지 -http://nuget.org/List/Packages/App_BrowsersUpdate
.NET 2.0 브라우저 업데이트 NuGet 패키지 -http://nuget.org/List/Packages/App_BrowsersUpdate.net20
또 하나는 서버에 있는 모든 사이트의 호환성 문제를 해결할 수 있도록 패치하는 것이다
.NET 4 - http://support.microsoft.com/kb/2600088
.NET 2.0 - http://support.microsoft.com/kb/2600100
또한 블로거는 프로젝트에서 대량의 개발자 프레스 서버 컨트롤러를 사용했기 때문에 말로 표현할 수 없을 정도로 고통스러웠다. 상기 방식에 따라 복구를 했지만 VS 자체 컨트롤러는 문제가 없었지만 dev 컨트롤러는 많은 오류가 발생했고 결국 복원되지 않아 사용자로 하여금 호환성 모드를 사용하게 했다.
마이크로소프트가 다음 버전의 브라우저를 발표할 때만 이 문제를 복구할 수 있기를 바랍니다
웹에서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
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Microsoft Edge 편리 기능】URL 바를 카피하면 타이틀을 포함한 Markdown 형식으로 붙여넣기 가능업무로 이용하고 있는 Microsoft 계정으로 관리를 할 수 있는 것이 일인으로 보급되었던 Microsoft Edge에는, URL을 타이틀도 포함한 Markdown 형식으로 copipe 할 수 있는 편리한 기능이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.