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