1

JavaScriptアプリケーションをブラウザーに提供するWebアプリケーションプラットフォームを作成しています。言うまでもなく、ドキュメントが読み込まれた後、JSメソッドを使用してアプリケーションを起動しますが、IE9では、開発者コンソールをいじっていないと何も起こりません。

これは典型的なコンソールの欠落の問題のようですが、コンソールのチェックを追加したり、ソースコードからコンソール呼び出しを削除したりしても修正できませんでした。

私がどこで間違っているのか見つけられますか?

同じプラットフォームで複数の個別のWebアプリを提供しているので、次のことも確認できます(問題はどこでも同じように見えます)。

4

1 に答える 1

1

Object.keysは、Internet Explorerのすべてのバージョンでサポートされているわけではありません。以下を参照してください:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys 以下(上記のソースから)は追加しますそれをサポートしていないブラウザへのObject.keys:


if (!Object.keys) {
  Object.keys = (function () {
    var hasOwnProperty = Object.prototype.hasOwnProperty,
        hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
        dontEnums = [
          'toString',
          'toLocaleString',
          'valueOf',
          'hasOwnProperty',
          'isPrototypeOf',
          'propertyIsEnumerable',
          'constructor'
        ],
        dontEnumsLength = dontEnums.length

    return function (obj) {
      if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object')

      var result = []

      for (var prop in obj) {
        if (hasOwnProperty.call(obj, prop)) result.push(prop)
      }

      if (hasDontEnumBug) {
        for (var i=0; i 

In addition, your method of checking the existence of console is erroneous :

Try running (http://jsfiddle.net/PytAh/) in internet explorer:

if (console){
    alert("there");
} else {
    alert("not there");
}

It will generate an error showing that console does not exist. You can replace it by :

if (window.console){
    alert("there");
} else {
    alert("not there");
}

于 2012-07-12T07:22:47.980 に答える