2011-10-27 13 views
1

私た.ascxファイル内のいくつかのグーグルプラスワンJavaScriptを持っている:ASP.NET - 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 %> 

コードビハインド方式

ただ、スクリプト内でプレースホルダ&を入れて、真/偽にその可視性を設定します。 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で表示されません。私はこの方法で、私のコードはスクリプトを2回含まなければならないと信じています。参考:http://www.quirksmode.org/css/condcom.html –

関連する問題