1

これまで見たことのない jQuery の問題が発生しています。私のスクリプトは特定のラッパーを隠しています。これは Firefox と Chrome では機能しますが、IE では機能しません。奇妙なことに、IE コンソールを開いてページを更新してログを表示すると、期待どおりに動作します。ただし、開発者ツールを開いて更新する場合にのみ修正されます!

コンソールのスニペットは次のとおりです。

$.get('/help-and-advice/purchase-wizard/product-details/' + product_id, function(data) {

          console.log(data);

          $.each(data.show, function() {
            $.each(this, function(index) {
              $('#' + data.show[index]).show();
            });
          });

          $.each(data.hide, function() {
            $.each(this, function(index) {
              $('#' + data.hide[index]).hide();
            });
          });

コンソール ログでは、非表示にしたいラッパーが data.show オブジェクト内にもリストされています。

4

1 に答える 1

2

コンソール ステートメントが存在し、コンソールが開いていない場合、IE が失敗する

に変更します

window.console && console.log(...)

またはコメントアウトするか、テストの前に F12 を押すことを忘れないでください


私はこのjsfiddleを持っています:

簡単なバージョン:

if (!window.console) window.console={ log:function(str) { alert(str) } }

コンマ区切りの引数を処理するより複雑なバージョン - オブジェクトをアンパックしませんが、1 層の複雑さを処理できます

if (!window.console) 
  window.console={ log:function() { 
    var text = [];
    for (var a,i=0;i<arguments.length;i++) {
      a=arguments[i];
      text.push(typeof a+": "+(typeof a == "object" ? a.toString():a));
    }
    alert(text.join('\n'))
  }
}

console.log("test",new Date())
于 2013-01-16T11:14:57.810 に答える