Aipo のドキュメントモードを最新版にする際の dojo の変更内容

nbeppu 76views 更新:2015年6月26日

現在の Aipo では IE のブラウザ互換モードを強制的に指定するために、以下のようなタグを差し込んでいます。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8,chrome=1" />

ただし、IE8 基準となるため IE で HTML5 や CSS3 を利用したい場合に、不都合が生じます。

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

上記に変更することにより最新版のレンダリングエンジンが選択されるようになります。
ただし、JavaScript で一部動作しない箇所が発生してしまいます。具体的には、IE8 以下のみの分岐であるべき箇所が、 dojo.isIE となっており IE9 以上も選択されてしまう箇所が問題のようです。 例えば、dojo.js では以下のような調整を行います。

    var defaultGetter = (d.isIE <= 8 && d.isIE > 0) ? function(cond){
        var clc = cond.toLowerCase();
        return function(elem){
            return elem[cond]||elem[clc];
        }
    } : function(cond){
        return function(elem){
            return (elem && elem.getAttribute && elem.hasAttribute(cond));
        }
    };
    dojo._getOpacity = (dojo.isIE <= 8 && dojo.isIE > 0 ? function(node){
            try{
                return (node.filters.alpha.opacity / 100); // Number
            }catch(e){
                return 1; // Number
            }
        } : function(node){
            return dojo.getComputedStyle(node).opacity;
        }
    );

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません