我有一个.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
但是:
答)我没有得到这些确切的症状,我没有得到'_doPostBack是未定义的‘。.net代码根本不会生成javascript调用。
b)我有另一个沙箱主机,当我将代码移到那里时,一切都很好,即使是IE10。此主机没有热修复程序,并且具有与其他主机相同的.net版本(2.0 SP2、3.0 SP2、3.5 SP1)。
此外,ie.browser文件在两个主机上具有相同的内容,regex行仍然是旧的,应该不能正确检测IE10。
<capability name="majorversion" match="^[5-9]" />有什么想法吗?
发布于 2013-04-18 01:21:56
最后,http://support.microsoft.com/kb/2600100的热修复程序确实解决了这个问题。真奇怪。我不能解释为什么我的非热修复主机没有遇到这个问题,但我最后要说的是没有问题。
发布于 2013-04-17 04:04:48
尝试将<meta http-equiv="X-UA-Compatible" content="IE=edge" />添加到您的<head>。也许甚至IE=EmulateIE8只是想看看这是否有任何效果。
发布于 2013-09-19 22:04:02
编辑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>https://stackoverflow.com/questions/16045980
复制相似问题