SharePoint REST API - JSON Light
SharePoint Server 2016 IT Preview 登場!

Internet Explorer の互換モードと SharePoint についての注意点

Internet Explorer (以下、IE) には互換モードがあります。たとえば、IE 11 を使っていた場合でも、そのページを開く場合は IE9 と同等の機能で表示するといったことが可能です。

どの互換モードを使うかは、Webサーバー側でサイト単位で設定したり、Webページに meta 要素を追加したり、HTTPヘッダーを指定したりすることで決まります。場合によっては 組織内のシステム管理者側で設定するグループポリシーの影響も受けます(参考:Group Policy and compatibility with Internet Explorer 11)。

SharePoint の場合は、マスターページに設定される meta 要素が影響します。meta 要素は次のような記述です(IE9対応モード指定の例)。

<meta http-equiv="X-UA-Compatible" content="IE=9">

この記述はオンプレミスと Office 365 (SharePoint Online)とで違いがあります。さらに既定のマスターページによっても違いがあります。なお、以下に記述する内容は今後更新される可能性が高いため 2015年8月現在の状況として記載しておくことに留意してください。

[オンプレミスの SharePoint 2013 SP1 以降の状況]

オンプレミスの SharePoint Server 2013 が持つ既定のマスターページは seattle.master と oslo.master です。まず、seattle.master を見てみると下記の通り IE10 との互換性を確保するように指定されていることがわかります。

2015-08-13 10-01-26

同じく Oslo.master も確認してみると、seattle.master と同様に IE=10 となっています。

2015-08-13 10-03-42

結論としては、いずれのマスターページを使用していても IE10がターゲットになっているということです。

[Office 365 (SharePoint Online)]

続いてクラウド環境である Office 365 ではどうでしょうか? ちょっと様相が変わります。まず、seattle.master を見てみましょう。meta タグでの指定が見当たらず、その代り次の SharePoint サーバーコントロール (SharePont:IECompatibleMetaTag)が定義されています(ちなみに、このサーバーコントロールについて調べてみたのですが、現時点では何の情報も公開されおりませんので、結果から推測する挙動を推測するしかありません)。

2015-08-13 10-05-01
このマスターページを使っている SharePoint サイトのページをレンダリングしたところ、今のところ生成されたソースは以下の通り IE10 互換になっています。Oslo.master についても同様です。

2015-08-13 10-12-25

ところで、SharePoint 2013 からは HTML マスターページという新しい機能が追加されています。この機能は、発行サイトもしくは 「SharePoint Server 発行」フィーチャーをアクティブ化すると利用できます。この機能により、master ページではなく、これに関連づく HTMLファイルを使ってデザイン変更を行えるようにするというもので、これによって SharePoint Designer がなくとも、メモ帳や Dreamweaver などでも編集が手軽にできるようになったわけです。HTML側を編集すると、これに合わせて master ページを自動生成してくれるという仕組みです。

さて、この HTMLマスターページの側を確認すると、実は IE9 互換モードになっています。

2015-08-13 10-34-14

さて、挙動を確認してみましょう。HTMLマスターページ既定の seattle.master および oslo.master のいずれを指定しても、レンダリング時には既定では IE10 モードになるようです。

しかし、seattle.html もしくは oslo.html をコピーして作成した独自のマスターページを適用するとどうでしょうか。下記のように IE9 と IE10 の両方の互換モードが追加されてしまいます。結果として IE9 互換モードに引きずられます。そのため、IEに関しては、CSS3 のほとんどが利用できなくなってしまいます。

2015-08-13 10-36-39

※IE9互換モードにならないようにするには、このタグを削除してしまいたいところですが、このタグを削除すると対応する *.master が壊れてしまうというトラブルに見舞われました。SharePont:IECompatibleMetaTag サーバーコントロールが関係していそうですが、このトラブル対応は修正が厄介であるため、最善策としては削除ではなく、meta要素の属性を IE=10 や IE=Edge に変更するなどといった対応を行った方がよいようです。

[結論]

マスターページのカスタマイズは、もともと高度なものであり、極力行わずにできるだけ CSS のみで対応していきたいところですが、フッターを追加したりしたい場合は、どうしても若干の変更は必要です。また、全社向けの情報発信ポータルサイトでは見栄えが重視されるため、局所的にはカスタム作成のマスターページを使うことになります。この時、上記のような挙動を意識しておかないと、HTML5 や CSS3 対応にしていく際に、予想した結果とならないことになります。十分にご注意ください。

[参考]

Course-Banner-SiteBranding

コメント

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。コメントは記事の投稿者が承認してから表示されます。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

コメントは記事の投稿者が承認してから表示されます。

アカウント情報

(名前とメールアドレスは必須です。メールアドレスは公開されません。)