Вы можете использовать menuReviver
, чтобы прикрепить еще один click event handler
, чтобы прервать выполнение с приглашением модальным, чтобы перезаписать имя файла.
"export": {
"enabled": true,
"menuReviver": function(config, li) {
var context = this; // INSTANCE
// MODIFY ONLY IMAGE ITEMS
if (config.capture) {
var title = li.getElementsByTagName("span")[ 0 ].textContent;
var link = document.createElement("a");
var span = document.createElement("span");
// REMOVE ORIGINAL
li.getElementsByTagName("a")[ 0 ].remove();
// TITLE
span.innerHTML = title;
link.appendChild(span);
function callback() {
var fileName = prompt("Filename");
// CHECK FILENAME
if (fileName) {
// CAPTURE CHART
this.capture({}, function() {
// GET JPG DATA
this.toPDF({}, function(base64) {
var info = this.defaults.formats.PDF;
// OFFER DOWNLOAD WITH GIVEN FILENAME
this.download(base64, info.mimeType, fileName + info.extension);
});
});
}
}
// LINK
link.addEventListener("click", function() {
callback.apply(context, arguments);
});
li.appendChild(link);
}
}
http://codepen.io/amcharts/pen/674b14ad4e2594a31ac59a455dda6784
В случае, если вы хотите сделать это вручную, вы можете сделать это следующим образом:
"export": {
"enabled": true,
"menu": [ {
"format": "PDF",
"click": function() {
var fileName = prompt("Filename:");
// CHECK FILENAME
if (fileName) {
// CAPTURE CHART
this.capture({}, function() {
// GET JPG DATA
this.toPDF({}, function(base64) {
var info = this.defaults.formats.PDF;
// OFFER DOWNLOAD WITH GIVEN FILENAME
this.download(base64, info.mimeType, fileName + info.extension);
});
});
}
}
} ]
}
@martynasma Любые идеи? –
Вы хотите просто изменить имя по умолчанию экспортированных файлов или хотите, чтобы физически попросил пользователя ввести имя файла, когда он нажимает на экспорт? – martynasma
Более поздний. Попросите пользователя ввести имя файла по клику export-> pdf. –