<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KRS8CM');</script>

IEのQuirksモード


HTML5の導入も兼ねて、サイトをリニューアルしました。
ローカルで動作確認した後、サーバのファイルを置き換えたところ、IEでの表示が崩壊。
テンプレートを弄っても直らないので、IE9の開発者ツール(F12)で確認したところ「HTML1113: ドキュメント モードを IE9 標準 から Quirks に変更して再起動」という警告がコンソールに表示されました。

a-blog cmsのメンテ用コメントが裏目に

さらに原因を探すために、おなじみW3C Markup Validation Serviceでチェックをかけたところ、こちらでも警告がでました。

Line 1, Column 70: Comments seen before doctype. Internet Explorer will go into the quirks mode.

「ドキュメントタイプの前に何か入ってる。これだと、IEでQuirksモードになるよ」とのこと。
何かを入れた記憶が無いのでブラウザでソースを確認したところ、なんとHTMLの先頭に入れた覚えのないコメントが…。
どうやら、a-blog cmsが、ファイルをインクルードした際に入れてくれた「このファイルをインポートしたよ」というコメントが悪さをしていたらしい。
CMSを使う場合は、共通のパーツなどを外部ファイル化してインクルードすることでメンテナンス性をあげますが、今回ももちろんそれをしていて、head部分も外部ファイルにしていました。

a-blog cmsが出力するHTMLからコメントや無駄な空白を消す

a-blog cmsは、コンフィグで、コメントや余分な空白を消して出力することができます。
設定は、管理画面上部メニューより「カスタマイズ管理>コンフィグ一覧>出力設定」にあります。



これで、無事表示が元に戻りました。
一行目がDOCTYPE宣言で始まらなければならない、というのは、IE6からありましたね。
互換といえば、褒めるべきところなのかもしれませんが、ビジネスユーザーが多いせいか、Microsoftはホントに上位互換主義ですね。Appleなんて、ハードウエアの仕様からバッサリ切り捨てていくのに…。
Windows版のMOSAICをダウンロードしてWindows7で起動したら、通信はできませんでしたが、動いてビックリしました。


<script type="text/javascript" id="zsiqchat">var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode: "siq61aecceb7ad0c24af4e4670187f03564ddd615eb71422e1b7169309fa9b25e89", values:{},ready:function(){}};var d=document;s=d.createElement("script");s.type="text/javascript";s.id="zsiqscript";s.defer=true;s.src="https://salesiq.zohopublic.com/widget";t=d.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t);</script>