한 동안 쉐어포인트 개발만 하다가 오늘 ASP.NET을 좀 사용하게 되어서 개발을 마치고 확인하던 중..
IE에서는 잘 보이는데 크롬에서 메뉴가 이상하게 나타나는 현상을 보게 되었습니다.
Rander 이벤트 부분을 전혀 타지를 않네요…
일단 저는 System.Web.UI.WebControls.Menu를 상속받아서 커스텀 컨트롤로 만든 상태이구요..
아래와 같이 IE에서는 정상적으로 나오는 것을 확인 할 수 있습니다.
헌데 크롬에서는 아래와 같이 나타납니다.
클릭해 보면 크롬의 경우 버튼으로 구현되어 자기 스스로 랜더링 부분을 확!!! 바꿔 버린 상태입니다.
검색하니 바로 나오긴 하네요..
방법은 코드를 넣는 방법과 그리고 ASP_Browsers 폴더에 browser 파일을 이용하는 방법이 있습니다.
일단 코드는 아래와 같이 작성하시면 됩니다.
protected void Page_PreInit(object sender, EventArgs e) { if (Request.ServerVariables["http_user_agent"].IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1) { Page.ClientTarget = "uplevel"; } } // 혹은 아래와 같은 방법! protected void Page_PreInit(object sender, EventArgs e) { if (Request.UserAgent.Contains("AppleWebKit")) Request.Browser.Adapters.Clear(); }
그리고 Browser파일을 이용하는 방법은 프로젝트 파일에서 마우스 오른쪽 –> 추가 –> ASP.NET 폴더 추가 –> App_Browsers 추가 그리고 생성된 폴더에서 마우스 오른쪽 –> 추가 –> 새 파일 추가 –> browser 파일 선택 후 파일명은 chrome.browser 로 합니다.
그리고 아래 부분 코드 추가
<browsers> .... <browser refID="Safari1Plus"> <controlAdapters> <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" /> </controlAdapters> </browser> </browsers>
그리고 아직 운영에서 직접 돌려본 경험이 없어서. 어떻게 되는지 정확히는 말씀 못 드리겠습니다. ㅡ.ㅡ;;;;
일단 잘 나오긴 합니다. *_*
고맙습니다.
'CSharp > Web' 카테고리의 다른 글
Asp.net Create Custom Sql Sitemapprovider Sample (0) | 2011.04.04 |
---|---|
asp.net updatepanel 사용시 jquery ready 이벤트 재 호출 방법 (0) | 2010.06.29 |
ASP.NET Treeview Control의 Line 디자인 깨짐 방지 (0) | 2010.06.24 |
doPostBack의 이해, a tag에 C# Event 걸기 (0) | 2010.04.08 |
Asp.NET을 이용한 MessageQueue에 값 보내기. (0) | 2009.11.25 |