2016-04-26 12 views
0

私はdatatables excelエクスポート機能に問題があります。DataTables - TypeError:this.s.subButton [c] - Excelエクスポート

問題はFirefox 45.0.2でのみ発生しました。 現在、私はdatatables 1.10.10とButtons 1.1.0(buttons.colVis)を使用しています。

クロムでは、エッジとオペラはすべて正常に動作します。

すでに最新のdataTablesファイルを試しましたが、問題が1.10.11リリースの一部であるかのように見えます。ここで

$(document).ready(function() { 
       $.fn.dataTable.moment('DD.MM.YYYY HH:mm:ss'); 
       //INITILIAZE THE DATA TOGGLES 
       $('[data-toggle="tooltip"]').tooltip(); 
       //BEGIN - Show loading Modal and disable closing 
       $('#loadingModal').modal("show"); 
       $('#loadingModal').on('hide.bs.modal', function (e) { 
        e.stopImmediatePropagation(); 
        e.preventDefault(); 
        return false; 
       }); 

       var table = $('#dTable').DataTable({ 
        "ajax": '../php/ajax/views/relations/getAllRelations.php', 
        dom: 'Bfrtip', 
        stateSave: true, 
        iDisplayLength: 25, 
        "orderClasses": false, 
        buttons: [ 
         {extend: 'copy', className: 'btn btn-raised btn-default'}, 
         /* BUG IN FIREFOX */ 
         {extend: 'excel', className: 'btn btn-raised btn-default'}, 
         {extend: 'print', className: 'btn btn-raised btn-default'}, 
         {extend: 'colvis', text: 'Ansicht', className: 'btn btn-raised btn-default', columns: ':gt(0)'} 
        ], 
        "language": { 
         "url": "../php/ajax/views/relations/GermanDataTables.json", 
         buttons: { 
          copyTitle: 'Daten kopiert', 
          copy: 'Kopieren', 
          //excel: 'Excel', 
          print: 'Drucken' 
         } 
        }, 
        //BEGIN - Hide column "ID" 
        "columnDefs": [ 
         { 
          "targets": [0], 
          "visible": false, 
          "searchable": false 
         } 
        ], 
        "initComplete": function() { 
         //BEGIN - Close loading Modal and enable closing 
         $('#loadingModal').unbind(); 
         $('#loadingModal').modal("hide"); 
         $('.buttons-colvis').on('click', function() { 
          $(".dt-button-collection").children().removeClass('dt-button').addClass('btn btn-raised colvisstyle'); 

          $('.dt-button-collection').children('a').each(function() { 
           if ($(this).hasClass('active')) { 
            $(this).removeClass('btn-danger').addClass('btn-success'); 
           } 
           else { 
            $(this).removeClass('btn-success').addClass('btn-danger'); 
           } 

           $(this).on('click', function() { 
            if ($(this).hasClass('active')) { 
             $(this).removeClass('btn-danger').addClass('btn-success'); 
            } 
            else { 
             $(this).removeClass('btn-success').addClass('btn-danger'); 
            } 
           }); 
          }); 
         }); 
        }, 
        "rowCallback": function (row, data, index) { 
         switch (data[7]) { 
          case 1: 
           $(row).css('background-color', '#F44336'); 
           $(row).css('color', '#FFFFFF'); 
           break; 
          default: 
           break; 
         } 
        } 
       }); 
       $('#dTable tbody').on('click', 'tr', function() { 
        table.$('tr.selected').removeClass('selected'); 
        $(this).addClass('selected'); 
        var param = parseInt(table.cell('.selected', 0).data()) * 9452; 
        window.location.href = "editRelation.php?relation=" + param; 
       }); 
      }); 

Firefoxのコンソール出力です:

TypeError: this.s.subButtons[c] is undefined 
._buildButtons() 
datatables.min.js:216 
._buildButtons() 
datatables.min.js:215 
._buildButtons() 
datatables.min.js:216 
._constructor() 
datatables.min.js:214 
l() 
datatables.min.js:209 
.fnInit() 
datatables.min.js:238 
nb() 
datatables.min.js:69 
ia() 
datatables.min.js:85 
m/</<.success() 
datatables.min.js:128 
m.Callbacks/j() 
jquery.min.js:2 
m.Callbacks/k.fireWith() 
jquery.min.js:2 
x() 
jquery.min.js:4 
.send/b() 
jquery.min.js:4 

私は、この行をコメントアウトした場合は{拡張: 'エクセル'、クラス名: 'BTN-デフォルトBTN-上げBTN'}すべてがFirefoxで動作します。 この行を設定した場合、Firefoxはコンテンツのロード時に停止しています。

この問題を解決する方法については、助けのための

<script type="text/javascript" src="../plugins/DataTable/jszip-2.5.0/jszip.min.js"></script> 

ありがとう:

+0

エラーが特定のバージョンのFireFoxでのみ発生すると、なぜその問題がdataTablesだと思われますか? FF 39.0でhttps://jsfiddle.net/zm825k01/2/をテストしました。問題ありません。 45.0.2の簡単なgoogle検索では、突然TypeErrorsに直面している多くの人が明らかになりました。「xは未定義です」など、他のバージョンやブラウザーでは常に動作していたコードがありますので、問題はFFで解明できない問題ですdataTablesの視点(特定のFF版のハックは無意味です)...未拡張のスクリプトのバージョンからの行番号への参照は役に立ちます... – davidkonrad

+0

はfirefox 46.0をテストしましたが、このエラーは引き続きこの部分に含まれていますリリース。私は、ミニマル化されていないスクリプトをチェックし、あなたに知らせるでしょう。 –

答えて

0

は数週間後、私は私がjszipライブラリを含んでいなければならないことが分かりました。

関連する問題