gpt4 book ai didi

asp.net 菜单控件在 Safari 中无法正确呈现

转载 作者:行者123 更新时间:2023-12-02 11:39:19 29 4
gpt4 key购买 nike

我正在处理的站点正在使用数据绑定(bind) asp:Menu 控件。当发送 1 个菜单项时,它会呈现在 Firefox(和 IE)中绝对正确的 HTML,但在 Safari 和 Chrome 中确实搞乱了代码。以下是发送到每个浏览器的代码。我已经测试了几个浏览器,它们的渲染效果都非常相似,所以我只发布渲染源的两个变体。

我的问题是:如何让 ASP.NET 向 Chrome 和 Safari 发送与向 Firefox 和 IE 发送相同的 html 和 javascript?

<!-- This is how the menu control is defined -->
<asp:Menu ID="menu" runat="server" BackColor="#cccccc"
DynamicHorizontalOffset="2" Font-Names="Verdana" StaticSubMenuIndent="10px" StaticDisplayLevels="1"
CssClass="left_menuTxt1" Font-Bold="true" ForeColor="#0066CC">
<DataBindings>
<asp:MenuItemBinding DataMember="MenuItem" NavigateUrlField="NavigateUrl" TextField="Text"
ToolTipField="ToolTip" />
</DataBindings>
<StaticSelectedStyle BackColor="#0066CC" HorizontalPadding="5px" VerticalPadding="2px"
Font-Names="Verdama" CssClass="left_menuTxt1" Font-Bold="true" />
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="8px" />
<DynamicMenuStyle BackColor="#fbfbfb" BorderColor="#989595" BorderStyle="Inset" BorderWidth="1"
Width="80px" VerticalPadding="1" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" Font-Name="Verdama"
ForeColor="#c6c4c4" CssClass="left_menuTxt1" Font-Bold="true" />
<DynamicSelectedStyle BackColor="#cccccc" HorizontalPadding="5px" VerticalPadding="2px"
Font-Names="Verdama" CssClass="left_menuTxt1" Font-Bold="true" />
</asp:Menu>
<!-- From Safari View Page Source (Chrome source very similar) -->
<span title="Order" class="ctl00_leftNav_menu_4">
<a class="ctl00_leftNav_menu_1 ctl00_leftNav_menu_3"
href="javascript:__doPostBack('ctl00$leftNav$menu','oMy Order')">
My Order
<img src="/WWW/WebResource.axd?d=glUTEfEv7p9OrdeaMxkMzhqz2JugrMr8aE43O2XGHAA1&amp;t=633590571537099818"
alt="Expand My Order"
align="absmiddle"
style="border-width:0px;" /></a></span><br />


<!-- From Firefox View Page Source (IE View page similar) -->
<table>
<tr onmouseover="Menu_HoverStatic(this)"
onmouseout="Menu_Unhover(this)"
onkeyup="Menu_Key(event)"
title="Order"
id="ctl00_leftNav_menun0">
<td>
<table class="ctl00_leftNav_menu_4" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="white-space:nowrap;width:100%;">
<a class="ctl00_leftNav_menu_1 ctl00_leftNav_menu_3"
href="../Order/OrderList.aspx">
My Order
</a>
</td>
<td style="width:0;">
<img src="/WWW/WebResource.axd?d=glUTEfEv7p9OrdeaMxkMzhqz2JugrMr8aE43O2XGHAA1&amp;t=633590571537099818"
alt="Expand My Order" style="border-style:none;vertical-align:middle;" />
</td>
</tr>
</table>
</td>
</tr>
</table>

更新:我的解决方案帖子是正确的..但我无法将自己的解决方案标记为正确...所以如果有人想复制它,那么我可以关闭它。 :)

最佳答案

我从 weblogs.asp.net 的评论中找到了这个解决方案。这可能是一个黑客行为,但它确实有效。

这种跨浏览器兼容性的斗争正在变得令人不安。

 if (Request.UserAgent.IndexOf("AppleWebKit") > 0)
{

Request.Browser.Adapters.Clear();

}

如果有人有更好的解决方案,而不是黑客,如果您发布它,我将不胜感激。从我广泛的网络搜索来看,似乎我并不是唯一一个遇到菜单控件问题的人,因此一些好的引用资料可以帮助其他处于相同情况的人。

关于asp.net 菜单控件在 Safari 中无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277197/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com