我正在使用的網站使用Databound asp:Menu控件。當發送1個菜單項時,它呈現的HTML在Firefox(和IE)中絕對正確,但是在Safari和Chrome中確實搞糟了代碼。以下是發送給每個瀏覽器的代碼。我已經測試了幾個瀏覽器,並且它們都非常類似地渲染,所以我只在渲染源上發佈了兩個變體。asp.net菜單控件在Safari中無法正確顯示
我的問題是:我如何讓ASP.NET發送相同的HTML和JavaScript到Chrome和Safari,因爲它對Firefox和IE呢?
<!-- 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&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&t=633590571537099818"
alt="Expand My Order" style="border-style:none;vertical-align:middle;" />
</td>
</tr>
</table>
</td>
</tr>
</table>
更新:我的解決方案後是正確的..但我不能記住我自己是正確的...因此,如果有人想複製它,所以我可以關閉此。 :)
我的代碼在我的評論中的作品,是解決方案..但我不能標記自己是正確的......所以如果有人想複製它,所以我可以關閉它。 :) – stephenbayer 2008-12-30 18:16:57
我喜歡這個解決方案最好的。您還應該注意IE8中的問題,解決方案可以在這裏找到: http://weblogs.asp.net/mhildreth/archive/2009/01/26/testing.aspx(CSS解決方案) http:// weblogs.asp.net/bleroy/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available。aspx(修補程序) – 2009-06-22 19:35:06
在Chrome中也存在同樣的問題,並猜測相同的解決方案適用於!獎勵! +1 – 2010-04-27 09:59:43