Кнопки данных. Функция запроса имени файла не отменяется.Javascript

Форум по Javascript
Ответить
Anonymous
 Кнопки данных. Функция запроса имени файла не отменяется.

Сообщение Anonymous »

Я использую DataTables и добавляю кнопки для загрузки таблицы. Поскольку у меня есть несколько кнопок (csv, excel и т. д.) и я хочу, чтобы несколько из них запрашивали имя файла с предлагаемым значением, я хочу использовать общую функцию для каждой, чтобы она оставалась СУХОЙ.Когда я использую код из этого ответа с анонимной функцией, он работает так, как я и ожидал.

Код: Выделить всё

filename: function(){
const filename = prompt("Please enter your file name", "");
if (filename != null) {
return filename;
}
}
Но когда я перемещаю это в именованную функцию, все работает, за исключением того, что когда я закрываю диалоговое окно подсказки, файл загружается с именем по умолчанию download.csv. Я хочу, чтобы он отменил запрос и загрузку.

Код: Выделить всё

function propose_filename () {
const date = new Date()
const proposed = $(document).prop('title') + " " + date.toISOString()
const filename = prompt("Please enter your file name", proposed)
if (filename != null) {
return filename;
}
}
И я использую его здесь:

Код: Выделить всё

layout: {
bottomStart: {
buttons: [
{
extend: 'csv',
filename: propose_filename
},
{
extend: 'excel',
filename: propose_filename
},
]
}
}
Для демонстрации эти JSFiddles используют другую таблицу и т. д., но имеют мою функцию Offer_filename. И анонимная функция, и именованная функция работают правильно. Одно заметное различие между этим и моим нерабочим кодом заключается в том, что JSFiddle использует функцию dom DataTables, которая устарела, пока я использую функцию макета. Поскольку я безуспешно пытался заставить его использовать макет, это может означать, что JSFiddle использует DataTables 1 (и я не знаю, как это определить или изменить. Мой код использует DataTables 2 и макет.
Кнопка Excel запрашивает имя файла.
Анонимная функция JSFiddle
Именованный JSFiddle function
Как мне сделать так, чтобы поток отмены прошел до конца?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -canceling
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»