SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【Javascript】IE用の条件分岐

問題

Javascript中で、HTMLの条件分岐コメントみたいなことはできる?

答え

@cc_on で、Conditional Compilation がonになる。

こんな書き方ができる。

<script type="text/javascript">
/*@cc_on
document.write("JScript version: " + @_jscript_version + ".<br>");
   /*@if (@_jscript_version >= 5)
      document.write("JScript Version 5.0 or better.<br \/>");
      document.write("This text is only seen by browsers that support JScript 5+<br>");
   @else @*/
      document.write("This text is seen by all other browsers (ie: Firefox, IE 4.x etc)<br>");
   /*@end
@*/
</script>

IE以外のブラウザに対しては、条件付きコンパイル ステートメントを使っている部分がコメントになるようにしておくとよい。

詳細はこちら → 条件付きコンパイル ステートメント http://msdn.microsoft.com/ja-jp/library/7kx09ct1(VS.80).aspx
使用できる変数などの一覧がある。

条件付きコンパイル ステートメント @cc_on を使うと、クロスブラウザXMLHTTPRequestはこうなるとか。

function HttpRequest(url, parameters){
  var pageRequest = false
/*@cc_on
   @if (@_jscript_version >= 5)
      try {
      pageRequest = new ActiveXObject("Msxml2.XMLHTTP")
      }
      catch (e){
         try {
         pageRequest = new ActiveXObject("Microsoft.XMLHTTP")
         }
         catch (e2){
         pageRequest = false
         }
      }
   @end
@*/

  if (!pageRequest && typeof XMLHttpRequest != 'undefined')
    pageRequest = new XMLHttpRequest()
}

関連するメモ

コメント(1)

【Javascript】古いIE用の高速化 at softelメモ 2011年4月20日 01:03

[…] cc_on とは、条件付コンパイルステートメント。Javascriptの中で、IEのときだけの処理が可能。 […]