2010-07-15 1 views
0

내 웹 사이트를 Chrome과 호환 가능하도록 설정해야합니다. 모든 브라우저 (refID = 'default')와 일치하는 TextBox 컨트롤 어댑터가 있습니다. 불행히도 Chrome에서 페이지가 끊깁니다. 가장 간단한 해결책은 크롬을 제외한 모든 브라우저에서 이전 어댑터를 계속 사용하는 것입니다. 내 .browser 파일은 다음과 같다 : 테스트 purpouses를 들어.browser 파일 대상 브라우저 일치 검색 순서

<browsers> 
     <browser id="Chrome" parentID="Safari1Plus"> 
     <identification> 
      <userAgent match=".+Chrome/(?'version'(?'major'\d+)\.(?'minor'\d+\.\d+).\d+)" /> 
     </identification> 
     <capabilities> 
      <capability name="browser" value="Chrome" /> 
      <capability name="majorversion" value="${major}" /> 
      <capability name="minorversion" value="${minor}" /> 
      <capability name="version" value="${version}" /> 
     </capabilities> 
     <controlAdapters > 
      <adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="ChromeTextBoxControlAdapter" /> 
     </controlAdapters> 
     </browser> 

     <browser refID="Default"> 
     <controlAdapters> 
      <adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="TextBoxControlAdapter" /> 
     </controlAdapters> 
     </browser> 
    </browsers> 

나는 TextBoxControlAdapter는 '기본'텍스트를 렌더링하기 위해 설정하고 ChromeTextBoxControlAdapter은 '크롬'텍스트를 렌더링 할 수 있습니다.

  • 현재 모든 브라우저는 텍스트 상자 대신 DEFAULT를 인쇄합니다.
  • 기본 브라우저 섹션에서 어댑터 태그를 주석 처리하면 chrome에 CHROME이 표시되고 다른 브라우저에서는 일반 ASP.NET 텍스트 상자가 렌더링됩니다.
  • 크롬을 렌더링 할 수있는 방법은 없지만 다른 모든 브라우저는 기본값으로 렌더링합니다.

이러한 방식으로 적응 형 렌더링을 구성 할 수 있습니까?

감사

답변

0

나는 또한이 문제에 실행, 내 예비 조사를 기반으로하고, 나는 "브라우저 REFID"노드 "브라우저 ID/parentID"노드 할 같은 설정을 상속하지 않습니다 믿습니다.

.NET과 같이 처음 refID 노드의 정보 만 적용한 다음 나머지는 무시합니다. 일치 순서는 루트 (예 : ID = "기본값")에서보다 구체적인 (예 : ID = "IE8") 순서입니다.

이 이론을 지원하는 connect.microsoft.com에 관련된 버그가 있습니다. link

제안 사항은 사용자 지정 설정을 refID 개의 조상이없는 노드에만 적용하는 것입니다.

더 많은 구성을 복제해야하고 코드의 기본값을 처리해야한다는 것을 의미합니다.