Sys.WebForms не определено в IE 10/11

Недавно я унаследовал веб-сайт ASP.NET, который работает во всех протестированных нами браузерах, кроме IE 10/11 (отлично работает в 9 и более ранних версиях). При обновлении страницы с открытой консолью оказывается, что Sys.WebForms не определен в IE, а не в других браузерах. Запуск в режиме совместимости не решает эту проблему.

Вот макет сайта.

Основной файл

<head>
    <script type="text/javascript" src="<%# Page.ResolveClientUrl("~/Scripts/Scripts.js") %>"></script>
</head>
...
<body>
    ...
    <form id="Tabs_Form" runat="server">
        <asp:ScriptManager ID="Scriptmanager1" runat="server" EnablePartialRendering="true" EnablePageMethods="true" ScriptMode="Release"></asp:ScriptManager>
        <script type="text/javascript">
            function SetUpPageHandlers() {
                PageRequest = Sys.WebForms.PageRequestManager.getInstance();
                PageRequest.add_initializeRequest(InitializeRequestHandler);
                PageRequest.add_beginRequest(BeginRequestHandler);
                PageRequest.add_endRequest(EndRequestHandler);
                PageRequest.add_pageLoaded(PageLoadHandler);
            }
        ...

Скрипты.js

$(document).ready(function () {
    ...
    SetUpPageHandlers();
});

При проверке переменной Sys в консоли в IE 11 она имеет только следующие члены.

__namespace
__rootNamespaces
__typeName
__upperCaseTypes
_jsonp
Application
Browser
Debug
Net
Res
Serialization
UI

В других браузерах он включает гораздо больше членов. У кого-нибудь есть идеи, что заставляет это действовать в IE 10/11?


person Community    schedule 23.02.2015    source источник
comment
Режим совместимости часто не имеет значения. Обычно вам нужно беспокоиться о режиме документа. Вы можете заставить браузер использовать правильный документ с помощью метатега x-ua-compatible, как описано здесь.   -  person mason    schedule 23.02.2015
comment
К сожалению, это не сработало. Я понятия не имею, что вызывает эту проблему.   -  person    schedule 24.02.2015


Ответы (1)


Возможно, вы используете версию ASP.NET, в которой нет последних файлов определений браузера.

Загрузите этот zip-файл и извлеките .browser файл. Затем поместите файл браузера в папку app_browsers в корневом каталоге вашего приложения. Перезапустите пул приложений.

Если приведенное выше исправление работает, рассмотрите возможность установки последних файлов определений браузера на сервере или, что еще лучше, рассмотрите возможность установки ASP.NET 4.5+.

Это запись в блоге отлично объясняет проблему.

person James Lawruk    schedule 01.04.2015