HTML コメントと IE 条件付きコメント
Visualforce は、内容を処理することなく、表示前にほとんどの HTML コメントと XML コメントをページから削除します。ただし、Internet Explorer の条件付きコメントは削除されないため、IE 固有のリソースおよびメタタグを含めることができます。
Visualforce では、単一行であるか複数行であるかに関係なく、標準 HTML コメント内の内容 (<!-- -->) を評価しません。Internet Explorer 以外のコメントの場合、Visualforce コンパイラーは HTML コメントの内容をアスタリスクに置き換えます。この置き換えにより、HTML コメントは古いブラウザーでの JavaScript コードのコメントアウトに適さなくなります。
Internet Explorer の条件付きコメントは、一般に古いバージョンの IE との間で発生するブラウザーの互換性問題に対処するために使用されます。条件付きコメントはページ上のどこで使用されても動作しますが、ページの <head> タグの内側に配置されることがよくあり、その場合は、バージョン固有のスタイルシートまたは JavaScript 互換性の「shim」を含めるために使用できます。
ページの <head> タグの内側に条件付きコメントを配置するには、標準の Salesforce ヘッダー、サイドバー、およびスタイルシートを無効にし、独自の <head> タグと <body> タグを追加します。
1<apex:page docType="html-5.0" showHeader="false" standardStylesheets="false">
2 <head>
3 <!-- Base styles -->
4 <apex:stylesheet value="{!URLFOR($Resource.BrowserCompatibility, 'css/style.css')}"/>
5
6 <!--[if lt IE 7]>
7 <script type="text/javascript"
8 src="{!URLFOR($Resource.BrowserCompatibility, 'js/obsolete-ie-shim.js')}>
9 </script>
10 <link rel="stylesheet" type="text/css"
11 href="{!URLFOR($Resource.BrowserCompatibility, 'css/ie-old-styles.css')}" />
12 <![endif]-->
13
14 <!--[if IE 7]>
15 <link rel="stylesheet" type="text/css"
16 href="{!URLFOR($Resource.BrowserCompatibility, 'css/ie7-styles.css')}" />
17 <![endif]-->
18 </head>
19
20 <body>
21 <h1>Browser Compatibility</h1>
22 <p>It's not just a job. It's an adventure.</p>
23 </body>
24</apex:page>
Visualforce では、標準 HTML コメント内の <apex:includeScript/> などの Visualforce タグをサポートせず、評価もしません。ただし、IE 条件付きコメント内の次の表記は評価します。
- $Resource や $User などのグローバル変数
- URLFOR() 関数
条件付きコメントの使用方法の詳細は、Internet Explorer の条件付きコメントに関する Microsoft のドキュメントを参照してください。