2011-10-27 2 views
1

내의 .ascx 파일에 일부 Google 플러스 원 자바 스크립트가 있습니다- IE에서 javascript를 숨기려면 어떻게해야합니까?

<script type="text/javascript"> 
    (function() { 
     var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
     po.src = 'https://apis.google.com/js/plusone.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
    })(); 
</script> 

내가 IE7과 IE8 브라우저의 코드의이 비트를 숨길 필요가있다.

이 작업을 수행하는 적절한 방법은 무엇입니까?

답변

1

마크 업 방법은

<% If Not (Page.Request.Browser.Browser.StartsWith("IE", StringComparison.OrdinalIgnoreCase) AndAlso Page.Request.Browser.MajorVersion < 9) Then%> 
This is either Not IE, or IE 9 or greater<br /> 
<% end if %> 

코드 숨김 방법

그냥 스크립트 내부의 자리 표시 자 &가 false/true로 가시성을 설정 넣습니다. 다음 기능을 사용하여 asp.net에서 브라우저를 감지합니다.

public static bool IsIE(Page page) 
{ 
    if (page != null && page.Request != null && page.Request.Browser != null) 
    { 
    return page.Request.Browser.Browser.StartsWith("IE", StringComparison.OrdinalIgnoreCase) && (page.Request.Browser.MajorVersion == 7 || page.Request.Browser.MajorVersion == 8); 
    } 

    return false; 
} 
+0

이것은 신뢰할 수있는 방법이 아닙니다. 많은 브라우저에는 IE를 '에뮬레이트'하고 IE 사용자 에이전트 문자열을 보내는 모드가 있습니다. 그러면 코드도 숨길 것입니다. –

+0

IE8 또는 IE7을 에뮬레이션하려면 IE8 또는 IE7에 숨겨진 코드가 표시되어야한다고 생각하지 않습니다. –

+0

또한 한발 뒤로 물러나서 IE 7 사용자와 8 명의 사용자에게이 물건을 숨기려고하십니까? – SoWeLie

0
<!--[if !(IE 7)&!(IE 8)]> 
You are not using IE7 or IE8 
<![endif]--> 
+0

"IE7 또는 IE8을 사용하고 있지 않습니다."는 Firefox, Chrome 또는 Safari에서 렌더링되지 않습니다. 이 방법을 사용하면 코드에 스크립트가 두 번 포함되어야한다고 생각합니다. 참조 : http://www.quirksmode.org/css/condcom.html –

관련 문제