Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2021, 16:23   #1
begovik
Пользователь
 
Аватар для begovik
 
Регистрация: 08.03.2010
Сообщений: 48
По умолчанию Как копировать текст из блока в буфер обмена?

Здравствуйте!
Ребят, кто умеет копировать текст из блока в буфер обмена, отзовитесь!

Казалось бы такая простая задачка, но это ж ёб... джаваскрипт, тут пока не заплюёшь весь экран по десятому разу, ничего не получится...

В общем почти все советы идут через "execCommand('copy')", но в документации написано, что этот метод устарел (да какая разница один хрен не работает), поэтому не хотелось бы его использовать.
Однако ж инновационно-новый, супер-пупер АХ... какой хороший "window.navigator.clipboard.writeTex t('$temp')" не работает, потому что этот самый clipboard равен ундефинед, как я понимаю (почитав документацию через третьи руки) к нему нельзя получить доступ, если у тебя не https.
А что же нам, простым сайтам с древним http и локальным серверам теперь уже невозможно выполнить простейшее действие, скопировать текст в буфер???

Поможите, чем можите!!!

Последний раз редактировалось begovik; 07.04.2021 в 09:40.
begovik вне форума Ответить с цитированием
Старый 09.04.2021, 13:31   #2
begovik
Пользователь
 
Аватар для begovik
 
Регистрация: 08.03.2010
Сообщений: 48
По умолчанию

Неужели никому не приходилось копировать текст из блока???
Или я один такой криворукий и у всех это работает по стандартным советам на форумах?
begovik вне форума Ответить с цитированием
Старый 09.04.2021, 14:53   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Делайте проверку на существование обьекта и используйте тот вариант который поддерживает браузер.
Пример:
Код:
function clipboard (text) {
	if (!text) return;
	if ('clipboard' in navigator) {
	   	navigator.clipboard.writeText(text);
	   	return;
	};
	var input = document.createElement('input');
	document.body.appendChild(input);
	input.style.cssText = 'position:fixed; top:-999px; left:-999px; width:1px; height:1px;';
	input.value = text;
	input.select();
	if (document.execCommand('copy')) {
		setTimeout(function () {
			input.remove();
		}, 1000);
	}
}
uberchel вне форума Ответить с цитированием
Старый 09.04.2021, 17:12   #4
begovik
Пользователь
 
Аватар для begovik
 
Регистрация: 08.03.2010
Сообщений: 48
По умолчанию

Спасибо за участие конечно, но это то же самое что и на всех других форумах, и конечно не работает, пробовал на Хроме, Мозиле и Эдже.

Я же писал, что не работает либо .select, либо .execCommand
После
Код:
input.select();
делаю вывод
Код:
console.log(input.value);
и в консоли есть весь текст, но в буфере пусто.

И ещё один вывод делаю внутри таймаута, вывод в консоль отрабатывает, значит казалось бы
Код:
if (document.execCommand('copy')) {
отрабатывает, но в буфере так ничего нового и не появляется.

А у вас что этот код работает?

Последний раз редактировалось begovik; 09.04.2021 в 17:18.
begovik вне форума Ответить с цитированием
Старый 12.04.2021, 07:03   #5
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Конечно работает, у вас проблема в чем то другом
uberchel вне форума Ответить с цитированием
Старый 12.04.2021, 14:51   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Код:
function copyToClipboard(str) {
		var area = document.createElement('textarea');

		document.body.appendChild(area);
		area.value = str;
		area.select();
		document.execCommand("copy");
		document.body.removeChild(area);
	}
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите написать простенькую программу, которая будет копировать текст в буфер обмен man7OS Общие вопросы .NET 1 15.04.2019 19:48
TChromium копировать текст в буфер e.sibenkov Помощь студентам 0 30.11.2016 21:03
Скопировать текст между тегами в буфер обмена daaa Общие вопросы Delphi 2 08.08.2013 14:17
Текст из Memo в буфер обмена zver777 Общие вопросы Delphi 8 20.08.2009 18:20
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02