问题:
asp:Menu 在Safari浏览器中显示不正常。
解决方法一:(App_Browsers)
Step1: Add App_Browser Folder in application
right click on project add ASP.Net Folder - App_Browsers
right click on App_Browsers -- Add new item --- Browser File ( with name Safari.browser )
Add this section in Safari.browser file and save the file.
<browsers>
<browser refID="safari1plus">
<capabilities>
<capability name="xml" value="true" />
</capabilities>
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
</controlAdapters>
</browser>
</browsers>
解决方法二:(不适用于Master Page)
You could also put it in the preint event...
Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
If InStr(Request.ServerVariables("http_user_agent"), "Safari") Then
Page.ClientTarget = "uplevel"
End If
End Sub
解决方法三:(使用基类PageBase)
Rather than repeat the same code on every page, I have created a new class called PageBase
public class PageBase: Page { public PageBase() { } protected void Page_PreInit(object sender, EventArgs e) { if (Request.ServerVariables["http_user_agent"].IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1) Page.ClientTarget = "uplevel"; } }
and then changed all my ChildPages so that they inherit from PageBase, instead of System.Web.UI.Page
From: http://forums.asp.net/t/941229.aspx?PageIndex=3