Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2020, 21:33
Новичок на форуме
Отправить личное сообщение для DrJekyll Посмотреть профиль Найти все сообщения от DrJekyll
 
Регистрация: 15.01.2020
Сообщений: 1

Как изменить имя документа при сохранении в chrome?
есть текстовый input text в документе. Нужно чтобы при сохранении документа в браузере chrome (печать -> сохранить как pdf) имя файла становилось text.pdf. пробовал так- не работает.

function print_with_name(){
let temp = document.getElementById('inputText').innerText
document.title = temp;

Последний раз редактировалось DrJekyll, 15.01.2020 в 21:37.
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2020, 04:51
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от 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!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значения переменной из одного фрейма в другой в Google Chrome Freestyle007 Events/DOM/Window 17 20.06.2019 14:28
Как изменить css одного div при наведении на другой с javascript? InkyThousand Общие вопросы Javascript 7 11.11.2014 16:35
Как взять элементы по классу и изменить им свойство в цсс при клике на кнопку? Webtest Элементы интерфейса 2 08.09.2014 12:09
Как сделать так, тобы при нажатии на div содержание текстового документа появлялось? Webtest Общие вопросы Javascript 1 03.09.2014 12:36
как при добавлении изображения на сервер считывать имя в БД? solomusic Серверные языки и технологии 3 12.06.2008 23:28