問題描述
如何讓 asp:menu 在 Safari 中工作? (How can I get asp:menu working in Safari?)
在 safari 瀏覽器上,標準的 根本渲染不好。如何解決這個問題?
參考解法
方法 1:
Thanks for the advice, it led me into the following solution;
I created a file named "safari.browser" and placed it in the App_Browsers directory. The content of this file is shown below;
<browsers>
<browser refID="safari1plus">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" />
</controlAdapters>
</browser>
</browsers>
As I understand it, this tells ASP.NET not to use the adaptor it would normally use to render the control content and instead use uplevel rendering.
方法 2:
You can use ControlAdapters to alter the rendering of server controls.
Here's an example: http://www.pluralsight.com/community/blogs/fritz/archive/2007/03/27/46598.aspx
Though, in my opinion it might be equal amount of work to abandon the menu control for a pure css one (available on many sites).
方法 3:
Oooof ‑ was hoping it would be a simmple case of adding a browserCaps item in web.config with appropriate values or similar...
方法 4:
The best and simplest solution I've found for this problem is to include this bit of code in your page_load event.
if (Request.UserAgent.IndexOf("AppleWebKit") > 0)
Request.Browser.Adapters.Clear();
(by deepcode.co.uk、deepcode.co.uk、Ben Scheirman、deepcode.co.uk、jonezy)
參考文件
- How can I get asp:menu working in Safari? (CC BY‑SA 2.5/3.0/4.0)