Web浏览器是否尝试修复错误/弃用的HTML?
发布时间:2020-12-14 23:23:02 所属栏目:资源 来源:网络整理
导读:我正在跟踪ASP.NET WebForms项目中的一些交叉兼容性问题,并且我遇到了一些特殊的行为.使用不同的浏览器访问同一页面会产生不同的结果,这种情况经常发生.对这个案例感到好奇的是,当我在不同的浏览器中查看源代码时,它向我展示了不同的html. IE 10: td id="ct
我正在跟踪ASP.NET WebForms项目中的一些交叉兼容性问题,并且我遇到了一些特殊的行为.使用不同的浏览器访问同一页面会产生不同的结果,这种情况经常发生.对这个案例感到好奇的是,当我在不同的浏览器中查看源代码时,它向我展示了不同的html.
IE 10: <td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouSEOver="javascript:skm_mousedOverMenu('ctl00_MainMenu',this,document.getElementById('ctl00_MainMenu'),false,'');skm_shimSetVisibility(true,'ctl00_MainMenu-menuItem010-subMenu');" onmouSEOut="javascript:skm_mousedOutMenu('ctl00_MainMenu','');this.className='';" style="cursor:hand;"><font face="Verdana"><b>Patients</b></font></td> FF: <td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouSEOver="javascript:skm_mousedOverMenu('ctl00_MainMenu','');" onmouSEOut="javascript:skm_mousedOutMenu('ctl00_MainMenu','');this.className='';" style="cursor:pointer;">Patients</td> 铬: <td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouSEOver="javascript:skm_mousedOverMenu('ctl00_MainMenu','');this.className='';" style="cursor:pointer;">Patients</td> 请注意额外的< font>和< b> IE版本中的标签.这是一个我正在维护的旧应用程序.它使用skm Menu控件,并在控件的属性中显式设置粗体和Verdana字体. <SKM:menu id="MainMenu" runat="server" Cursor="Pointer" ItemPadding="7" Font-Bold="True" Font-Size="12px" Font-Names="Verdana" ItemSpacing="0" BorderColor="Black" BorderWidth="1px" BorderStyle="solid" GridLines="Both" BackColor="silver" Layout="Horizontal"> <SelectedMenuItemStyle ForeColor="Red" BackColor="White" /> </SKM:menu> 让我感到困惑的是,这是我们使用IE9在View Source中看到的html: <td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouSEOver="javascript:skm_mousedOverMenu('ctl00_MainMenu','');this.className='';" style="cursor:hand;">Patients</td> 我正在尝试追踪是否是基于UserAgent呈现不同html的服务器,或者浏览器是否通过即时更改并在查看源时显示“已清理”版本来尝试智能.希望它不是两者的某种组合. 编辑: 解决方法
ASP.NET控件可能会为不同的浏览器发出不同的HTML,尤其是不同版本的IE.他们会尝试根据检测到的浏览器功能(脚本支持,CSS支持等)来做到这一点.
较旧的ASP.NET应用程序(以前的.NET 4.5)不了解现代浏览器(如IE10),并且此检测可能不正确,从而导致各种问题.您可以尝试使用update browser definitions以帮助纠正检测. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |