【问题标题】:Sys.WebForms undefined on IE 10/11Sys.WebForms 在 IE 10/11 上未定义
【发布时间】:2015-02-23 18:55:57
【问题描述】:

我最近继承了一个 ASP.NET 网站,该网站可以在我们测试过的所有浏览器中运行,除了 IE 10/11(在 IE 10/11 和之前的版本中运行良好)。在打开控制台的情况下刷新页面时,似乎 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);
            }
        ...

Scripts.js

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

在IE 11的控制台中查看Sys变量时,只有以下成员。

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

在其他浏览器中,它包含更多的成员。有谁知道是什么导致 IE 10/11 出现这种情况?

【问题讨论】:

  • 兼容模式通常没有区别。这通常是您需要担心的文档模式。您可以通过x-ua-compatible 元标记强制浏览器使用正确的文档,如here 所述。
  • 不幸的是,这不起作用。我不知道是什么导致了这个问题。

标签: javascript asp.net webforms sys


【解决方案1】:

您运行的 ASP.NET 版本可能没有最新的浏览器定义文件。

下载此zip file 并提取 .browser 文件。然后将浏览器文件放在应用程序根目录中的app_browsers 文件夹中。重新启动您的应用程序池。

如果上述修复有效,请考虑在服务器上安装最新的浏览器定义文件,或者更好的是,考虑安装 ASP.NET 4.5+。

blog post 很好地解释了这个问题。

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2018-01-27
    • 1970-01-01
    • 2012-10-23
    相关资源
    最近更新 更多