加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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的服务器,或者浏览器是否通过即时更改并在查看源时显示“已清理”版本来尝试智能.希望它不是两者的某种组合.

编辑:
在将主机从Win2k3服务器迁移到Win2k3 R2服务器之前,我(或者说客户)没有注意到这一点.如果我从IE10点击R2服务器,我会得到那些额外的标签.如果我从IE10点击非R2服务器,我不会得到这些标签.完全相同的代码和IIS6.

解决方法

ASP.NET控件可能会为不同的浏览器发出不同的HTML,尤其是不同版本的IE.他们会尝试根据检测到的浏览器功能(脚本支持,CSS支持等)来做到这一点.

较旧的ASP.NET应用程序(以前的.NET 4.5)不了解现代浏览器(如IE10),并且此检测可能不正确,从而导致各种问题.您可以尝试使用update browser definitions以帮助纠正检测.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读