9

我有一个 DotNetNuke站点,今天一位客户打来电话说它在 IE 10 上不起作用。特别是登录和注册链接不起作用,但它们在兼容模式下起作用。我查看了我们的测试 Windows 8 机器,发现它因为__doPostBack未定义而失败。在过去的 6 个小时里,我一直在寻找修复程序,而我能够找到的是,IE10 用户代理显然包含在 ie.browser 文件中,我应该安装此修复程序并重新启动服务器。那没有用。我没有注意到任何变化,即使我认为新的 ie.browser 文件应该与新的用户代理匹配。

我可以采取哪些其他步骤来解决问题?注意:服务器在 Windows server 2003 上运行带有 service pack 1 的 .NET 3.5。该站点运行的是 DotNetNuke 05.06.02。任何建议将不胜感激。

4

3 回答 3

9

请参阅 Scott Hanselman 的这篇文章:

“错误和修复:ASP.NET 无法检测到 IE10 导致 _doPostBack 是未定义的 JavaScript 错误或保持 FF5 滚动条位置”

于 2012-11-02T22:24:42.020 回答
4

在我的生产站点上,我尝试了一些东西,但没有奏效。

我安装了修补程序并重新启动 - 不好

我复制了更新的 ie.browser 文件 - 不好

我尝试修改 default.browser、ie.browser 和 mozilla.browser 文件来为所有内容启用 javascript - 不好。

我做的一件事最终使它工作(这应该适用于一切)是在文件的InitializePage函数中Default.aspx.vb,我将此行添加到子例程的开头

Page.ClientTarget = "uplevel"

这应该(据我了解)将所有浏览器视为可以处理 javascript 和 cookie 以及我们需要的所有其他东西。我觉得这是一个相当安全的赌注。

于 2012-11-05T22:46:55.907 回答
3

如果 web.config 中存在另一个配置,则会覆盖 Scott Hanselman 提出的修复:

<browserCaps>

ASP.NET 浏览器功能嗅探器可以通过 3 种方式进行配置(相互覆盖):

  1. Machine wide in <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers
  2. Site only by using .browser files in App_Browsers folder
  3. Site only by using <browserCaps> Element in web.config

对于 IE10,在下面添加以下案例<browserCaps> <case "Mozilla .. MSIE ..>

<case match="\d{2,}" with="${version}">
  frames=true
  tables=true
  cookies=true
  backgroundsounds=true
  vbscript=true
  javascript=true
  javaapplets=true
  activexcontrols=true
  tagwriter=System.Web.UI.HtmlTextWriter
  ecmascriptversion=3.0
  msdomversion=${major}${minor}
  w3cdomversion=1.0
  css1=true
  css2=true
  xml=true

  <filter with="${letters}" match="^b">
    beta=true
  </filter>
  <filter with="${extra}" match="Crawler">
    crawler=true
  </filter>
</case>
于 2012-11-20T14:07:28.760 回答