https://stackoverflow.com/questions/277197/asp-net-menu-control-not-rending-correctly-in-safari
這在最早 IE 8 出來時,就會發生選單變成一片空的情形,解決辦法是,開啟它的相容性檢視。這真的是很可笑的一件事,一般所理解的相容性,是針對別家的產品,只有微軟才跟自家產品相容,絕不可能和別人相容。所以,使用 Chrome 或 Firefox 當然也不會是正常的。
這個的解決辦法,比較簡單。只要加上 CSS,即可不用開啟相容性檢視。因為依據新的標準所開發的網頁,在相容性檢視下,根本是個災難啊。修正的 CSS 如下
------------------------------------
<style type ="text/css" >
.IE8Fix {
/* z-index: 1000; */
position:relative;
z-index:auto;
}
</style>
<asp:Menu ID="Menu1" runat="server" BackColor="White" BorderColor="#404040" BorderStyle="Double"
BorderWidth="1px" ForeColor="Black" Orientation="Horizontal" DynamicHorizontalOffset="1"
DynamicMenuStyle-CssClass="IE8Fix">
<Items>
<asp:MenuItem NavigateUrl="~/WebMessage.aspx" Text="訊息公告" Value="訊息公告"></asp:MenuItem>
----------------------------
然後,還有更為詭異的情形發生,相同的程式,放在不同的 server,然後用同一 Chrome 瀏覽器開啟,一個正常,另一個不正常,如下圖。然後,Firefox 卻都同樣正常。真是徵軟的品質,一流可靠啊。
就加上 'missing resource javascript' 來 Google 一下,還真找到解決辦法。如前述網址所載。還真是詭異的解決辦法,參考網頁是針對 Safari,就把它改成 chrome 就好。
----------------------------
If Request.ServerVariables("http_user_agent").IndexOf("Chrome", StringComparison.CurrentCultureIgnoreCase) <> -1 Or Request.UserAgent.Contains("AppleWebKit") Then
Request.Browser.Adapters.Clear()
Page.ClientTarget = "uplevel"
End If
----------------------------
微軟的一貫政策是,過期產品一概不支援,也沒有詳細資料可供參考,能否解決全靠運氣。我只是想讓它正常運作,再拖一陣子,儘快把程式轉成 PHP。