Opublikowałem i odpowiedziałem na to pytanie wcześniej. WebResource.axd not working with Internet Explorer 11
Ale myślałem, że poprawka naprawiła problem (CrossPostback, AJAX Controls i generowane postload ASP.NET nie działa), ale po zainstalowaniu w QA, to nie działało i zdaliśmy sobie sprawę, że to był .NET 4.5, który sprawił, że rzeczy działały.
Jestem w trakcie porównywania folderów ramek .NET między .NET 4 i .NET 4.5. To, czego potrzebowałem, aby zapytać, co może w .NET 4.5 naprawdę rozwiązać problem IE 11.
Główną zmianą w IE 11 jest ciąg agenta użytkownika. Jaka konkretna poprawka w programie .NET 4.5 mogła rozwiązać różnice między programami ASP.NET 4.0 i IE 11.
Ręczne scalanie różnic może nie pomóc tak jak w przyszłości, jeśli ochrona/hot fix zostanie zainstalowana w .NET 4.0, pliki te mogą uzyskać nadpisane.
Kolejny heads-up, problem dotyczy IE 11 w Windows 7,8,8.1 Każda pomoc lub sugestie.
UPDATE: Staraliśmy rejestracji tylko definicje przeglądarka .NET 4.5 język .NET 4.0, ale nadal problem pozostaje więc oprócz definicji istnieją pewne bibliotek, które sprawiają, że wszystko działa w IE 11.CrossPostback, AJAX Controls i generowane przez ASP.NET generowane posty zwrotne działają dla .NET 4.5, nie .NET 4.0 w IE 11
Odpowiedz
Mieliśmy podobny problem, w którym automatyczne odświeżenie strony dla DropDownList przestało działać z nowszymi wersjami IE. Po raz pierwszy zauważyliśmy to w IE10 i prześledziliśmy go do błędu przeglądarki, którego wielu jest świadomych, a który jest między innymi szczegółowo opisany here.
Dla tej konkretnej aplikacji i zestawu pudełek jej różne środowiska działały/działały, aktualizacja do wersji 4.5 nie była opcją krótkoterminową. Co więcej, poprawki maszynowe opisane w powyższym poście uległy erozji, gdy próbowaliśmy ją zainstalować. Jednak naprawa całej witryny załatwiła sprawę.
Tydzień lub dwa później ktoś trafił na stronę z IE11 Preview, a problem znów pojawił się. Zrobiliśmy więcej badań i odkryliśmy, że definicja przeglądarki "IE10Plus" z poprawki dla całej witryny - która naprawiła problem IE10 - nie zadziałałaby w IE11. Aby zidentyfikować IE10, dodano dopasowanie regex'u do majorversion - "\ d {2,}" - które pasowało do dwóch cyfr (w przeciwieństwie do poprzednich meczów, które były zgodne z "^ 9 $" - pasuje dokładnie "9") i IE10 działało teraz. Problem polega na tym, że definicja IE10Plus (i każda definicja IE przed nią) pochodzi ostatecznie z definicji "IE" i ta definicja wymagała również, aby ciąg znaków UA miał w nim "MSIE" (między innymi) i, jak w IE11, " MSIE "nie jest już częścią ciągu UA.
"IE10Plus" powinien naprawdę nazywać się "IE10".
Biorąc pod uwagę, że nie mogliśmy w krótkim terminie uaktualnić do wersji 4.5, musieliśmy znaleźć inne rozwiązanie. Naszym celem było stworzenie własnej definicji przeglądarki IE11. Nie mogliśmy zdefiniować żadnych możliwości wykraczających poza to, co widzieliśmy w IE10, ale było to dość blisko i przynajmniej identyfikuje przeglądarkę (i nie pogarsza funkcjonalności, jak to się dzieje).
Ludzie powiedzą ci, żebyś tego nie robił, ale niektórym (takim jak my) zapewnia on tymczasową naprawę, dopóki nie pojawi się ostateczne rozwiązanie.
Nie wiem, w jaki sposób 4.5 ma to naprawić. Przyjrzałem się plikom definicji przeglądarki i nie widzę sposobu, aby zidentyfikować IE11 (bez "MSIE" w łańcuchu UA), ale może jest gdzieś dodatkowa poprawka ukryta w bibliotece DLL.
W każdym razie oto definicja, którą stworzyliśmy i natychmiast rozwiązała problem.
W swoim projekcie dodaj do (lub utwórz jako) App_Browsers/ie.Przeglądarka, co następuje:
<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko -->
<browser id="IE11Preview" parentID="Mozilla">
<identification>
<userAgent match="Trident/(?'layoutVersion'\d+).*rv:(?'revision'(?'major'\d+)(\.(?'minor'\d+)?))" />
<userAgent nonMatch="MSIE" />
</identification>
<capabilities>
<capability name="browser" value="IE" />
<capability name="layoutEngine" value="Trident" />
<capability name="layoutEngineVersion" value="${layoutVersion}" />
<capability name="isColor" value="true" />
<capability name="screenBitDepth" value="8" />
<capability name="ecmascriptversion" value="3.0" />
<capability name="jscriptversion" value="6.0" />
<capability name="javascript" value="true" />
<capability name="javascriptversion" value="1.5" />
<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" />
<capability name="revmajor" value="${major}" />
<capability name="revminor" value="${minor}" />
</capabilities>
</browser>
Jeśli dodajesz do istniejącego pliku, poszukaj id = „IE10Plus” - może warto to zmienić do id = „IE10” jako „Plus” nie jest częścią dłużej dokładne.
Jak już powiedziałem, jeśli możesz przejść do 4.5, a to rozwiązuje problem - świetnie. Jeśli nie możesz lub nie, może cię to powstrzymać, dopóki nie możesz (lub dopóki nie pojawi się jakaś inna poprawka).
Dzięki Michael, nie próbował go, na pewno zrobić i poinformować. –
FWIW, właśnie zbudowałem kolejny serwer z 4.5 i działa idealnie z IE11. Definicje przeglądarki mają sens i, jak sądzę, są "preferowane". – Michael
Używam witryny w systemie Windows Server 2003 i nie można przeprowadzić aktualizacji do wersji .NET 4.5 bez przechodzenia na nowy serwer. Po wydaniu IE10 rozwiązałem ten problem, instalując pakiet NuGet Scotta Hanselmana, który dodaje pliki ie.browser i firefox.browser do folderu App_Browser. Próbowałem dodać twoją definicję IE11Preview do pliku ie.browser i zrestartowałem stronę, ale nadal nie działa z podglądem IE 11 (Windows 8.1). Jakieś pomysły? – Adhooo
Witam, wypróbuj poniższy skrypt To może ci pomóc.
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance()._origOnFormActiveElement = Sys.WebForms.PageRequestManager.getInstance()._onFormElementActive;
Sys.WebForms.PageRequestManager.getInstance()._onFormElementActive = function (element, offsetX, offsetY) {
if (element.tagName.toUpperCase() === 'INPUT' && element.type === 'image') {
offsetX = Math.floor(offsetX);
offsetY = Math.floor(offsetY);
}
this._origOnFormActiveElement(element, offsetX, offsetY);
};
</script>
Tu nie chodzi o "biblioteki", chodzi o ciąg UA i jego interpretację. Czy zainstalowałeś ten? http://support.microsoft.com/kb/2836947 – EricLaw
Mam zainstalowane wszystkie poprawki dla "Napotkano błąd skryptu", "'__doPostBack" jest niezdefiniowany "dla .NET 4.0 –
Próbuję uzyskać dostęp do strony w IE 11 + Windows 8.1. Otrzymuję pustą stronę page.seems skrypt java nie jest obsługiwany z powodu tego problemu. Żadna sugestia –