9

datatables コンポーネントで解決したバグを共有したかっただけです。

どうやら、datatables スクリプトで問題が発生すると、_fnLog が呼び出され、エラーがコンソールに出力されます。

これは関数のコードです:

function _fnLog(oSettings, iLevel, sMesg) {
        var sAlert = (oSettings === null) ?
            "DataTables warning: " + sMesg :
            "DataTables warning (table id = '" + oSettings.sTableId + "'): " + sMesg;

        if (iLevel === 0) {
            if (DataTable.ext.sErrMode == 'alert') {
                alert(sAlert);
            }
            else {
                throw sAlert;
            }
            return;
        }
        else {
            if (console !== undefined && console.log) {
                console.log(sAlert);
            }
        }
    }

ここの最後の数行は、「console」が存在するかどうかを確認してから、console.log アクションを実行していることに注意してください。IE では、デバッガーを実行していない限り、コンソール オブジェクトは存在しません。これにより、このバグを見つけるのが非常に困難で面倒になりました。とにかく、そのまま「コンソール」を参照することはできません。IE は例外なくスクリプトを停止します。適切なスクリプトが

if (window.console !== undefined && console.log) {
      window.console.log(sAlert);
}

これに1時間費やしたので、これがお役に立てば幸いです:)

エヤル

4

0 に答える 0