IE11中未定义__doPostBack

pln*_*txt 13 asp.net internet-explorer-11 windows-8.1

使用现成的asp HyperLink控件,IE 11给出错误SCRIPT5009:__ doPostBack未定义,其链接指向此处:http://msdn.microsoft.com/en-us/library/ie/xyf5fs0y( v = vs.94 )的.aspx

这可以在F12 devtools控制台窗口中看到.

有没有人遇到这个并且有解决方法吗?这是一个生产环境.

编辑:应用修补程序http://support.microsoft.com/kb/2600088对我不起作用,Windows 8上的IE 10工作正常.

Scott Hanselman最近的文章提供了最新信息.http://www.hanselman.com/blog/IE10AndIE11AndWindows81AndDoPostBack.aspx我将尝试这些修复并更新此问题,但这似乎与Windows 8.1和IE11隔离.

Rob*_*ell 25

在经历了几天同样的问题后,我们遇到了这个解决方案:

http://connect.microsoft.com/VisualStudio/feedback/details/806542/fix-internet-explorer-11-not-detected-correctly-by-net-4-0-framework-when-custom-browser-files-被使用.

将新的.browser文件添加到App_Browsers文件夹中; 我们将文件命名为'IE11.browser',如果App_Browsers文件夹不存在,则创建它.

然后我们简单地将上面链接中的主体复制到新创建的文件中,重新部署,现在不再有_doPostBack错误了.

该文件的正文如下所示:

<browsers>
<browser id="IE11" parentID="Mozilla">
  <identification>
    <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
    <userAgent nonMatch="IEMobile" />
  </identification>
  <capture>
    <userAgent match="Trident/(?'layoutVersion'\d+)" />
  </capture>
  <capabilities>
    <capability name="browser"             value="IE" />
    <capability name="layoutEngine"         value="Trident" />
    <capability name="layoutEngineVersion" value="${layoutVersion}" />
    <capability name="extra"                value="${extra}" />
    <capability name="isColor"             value="true" />
    <capability name="letters"             value="${letters}" />
    <capability name="majorversion"         value="${major}" />
    <capability name="minorversion"         value="${minor}" />
    <capability name="screenBitDepth"     value="8" />
    <capability name="type"                 value="IE${major}" />
    <capability name="version"             value="${version}" />
  </capabilities>
</browser>

<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
<browser id="IE110" parentID="IE11">
  <identification>
    <capability name="majorversion" match="11" />
  </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>
</browsers>
Run Code Online (Sandbox Code Playgroud)

我们没有必要将我们的.Net版本从4升级到4.5,现在一切正常.

希望这可以帮助有同样令人沮丧的问题!


小智 7

将以下脚本放在您的母版页中肯定会修复它.我有一个类似的问题,它得到修复.

<script runat="server">

protected override void OnInit(EventArgs e)
{
Page.ClientTarget = "uplevel";
base.OnInit(e);

}
</script> 
Run Code Online (Sandbox Code Playgroud)

  • 对于它的价值,这是我在我无法控制环境的主机上唯一有效的解决方案.在我的情况下,.browser文件对我没有帮助.只要知道,如果你这样做,你的javascript硬编码支持到你的网站,所以没有javascript支持的旧浏览器将不再像以前那样运行.就我而言,这是可以接受的. (4认同)

Chr*_*ris 3

在 Web 服务器上安装 .NET Framework 4.5 应该可以解决该问题。

http://www.microsoft.com/en-gb/download/details.aspx?id=30653

或者,如果您无法安装 .NET Framework 4.5,可以使用适用于 IE11 的 Microsoft 修补程序:http ://support.microsoft.com/kb/2836939 (感谢 @Afract 的评论)

  • 一些背景故事——这可能会为我解决这个问题,但是当 .NET 4.5 安装由于我的服务器上一些模糊的 RSA 问题而失败时,我打开了潘多拉魔盒。长话短说,它需要构建两个新服务器和我三个星期的生命。 (3认同)
  • 对于那些无法安装 FW4.5.2 的用户,有一个针对 IE11 的 MS 修补程序:http://support.microsoft.com/kb/2836939/ (3认同)