0

我有一个 .net 表单,它有一个自动回发的下拉列表。大多数时候一切都很好,我明白了:

<td class="frmLabel">Province:</td><td><select name="ctl00$ProvinceDropDown" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ProvinceDropDown\',\'\')', 0)" id="ctl00_ProvinceDropDown">

但有时(我会在一秒钟内了解情况)我得到这个:

<td class="frmLabel">Province:</td><td><select name="ctl00$ProvinceDropDown" id="ctl00_ProvinceDropDown">

请注意没有执行自动回发的 javascript。

问题发生的唯一时间是在 IE10 上。其他所有浏览器都很好。IE9 浏览器模式或 IE10 兼容模式下的 IE10 也可以。

显然,这感觉就像.Net 没有正确识别 IE10。我知道这个修补程序:

http://support.microsoft.com/kb/2600100

但:

a) 我没有得到那些确切的症状,我没有得到“_doPostBack 未定义”。.net 代码根本不生成 javascript 调用。

b)我有另一个沙盒主机,当我将代码移到那里时,一切都很好,即使是 IE10。此主机没有修补程序,并且具有与其他主机相同的 .net 版本(2.0 SP2、3.0 SP2、3.5 SP1)。

ie.browser 文件在两台主机上也有相同的内容,正则表达式行仍然是旧的,据说没有正确检测到 IE10。

<capability name="majorversion" match="^[5-9]" />

有任何想法吗?

4

3 回答 3

0

尝试添加<meta http-equiv="X-UA-Compatible" content="IE=edge" />到您的<head>. 也许甚至 IE=EmulateIE8 只是为了看看这是否有任何效果......

于 2013-04-16T20:04:48.010 回答
0

最后, http: //support.microsoft.com/kb/2600100上的修补程序确实解决了这个问题。诡异的。我无法解释为什么我的非热修复主机没有遇到此问题,但我要讨论的最后一件事是没有问题。

于 2013-04-17T17:21:56.230 回答
0

编辑 web.config 文件并在<system.web>部分添加

<browserCaps>
            <case match="IE[ /](?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
                browser=IE
                version=${version}
                majorversion=${major}
                minorversion=${minor}
                frames=true
                tables=true
                cookies=true
                javascript=true
        javaapplets=true
                activexcontrols=true
                ecmascriptversion=1.5
                vbscript=true
                backgroundsounds=true
                isMobileDevice="true"
                <filter match="[4-9]" with="${major}">
                    ecmascriptversion=1.3
                    css1=true
                    css2=true
                    xml=true

                    <filter match="[5-9]" with="${major}">
                        w3cdomversion=1.0
                    </filter>
                  </filter>
                  <filter match="^b" with="${letters}">
                   beta=true
                </filter>                                                               
             </case></browserCaps>
于 2013-09-19T14:04:02.217 回答