Сообщение от DrJekyll
|
Нужно чтобы при сохранении документа в браузере chrome (печать -> сохранить как pdf) имя файла становилось text.pdf. пробовал так- не работает.
|
Судя по приведённому коду коду, вы всегда сбрасываете заголовок... Не совсем понятно, что вы хотите достичь.
Сообщение от DrJekyll
|
Нужно чтобы при сохранении документа в браузере chrome (печать -> сохранить как pdf) имя файла становилось text.pdf.
|
Это делает следующий скрипт...
document.title = "text";
Но вы можете захотеть сразу установить правильный заголовок!
<title>text</title>
DrJekyll, в случае, если вы печатаете тот документ, который находится в основном окне (не в фрейме), то имя файла берётся из заголовка страницы. Если вы хотите изменять имя непосредственно перед печатью, то можно так...
<form id="print">
<input name="title" placeholder="Введите имя" required>
<button>Печать</button>
</form>
<script>
document.getElementById("print").addEventListener("submit", event => {
event.preventDefault();
const title = document.title;
document.title = event.target.elements.title.value;
addEventListener("afterprint", () => {
document.title = title;
}, { once: true });
print();
});
</script>
Если вам нужно печатать документ, который находится внутри фрейма (например, как тут на форуме этот пример), то...
<form id="print">
<input name="title" placeholder="Введите имя" required>
<button>Печать</button>
</form>
<script>
document.getElementById("print").addEventListener("submit", event => {
event.preventDefault();
const win = open("about:blank", "print", "width=640,height=480");
for (const node of win.document.childNodes) win.document.removeChild(node);
win.document.appendChild(document.documentElement.cloneNode(true));
win.document.title = event.target.elements.title.value;
win.onafterprint = () => win.close();
win.print();
});
</script>
ЕЩЁ Возможно вы просто перепутали innerText с value!