Я хочу разрешить пользователям копировать большое количество адресов электронной почты в буфер обмена. Этот ответ казался самым надежным способом сделать это:
Нажмите на ссылку выше, скопируйте и вставьте текст в текстовый редактор, и вы увидите, что одно из писем (примерно на полпути) становится:
Ответ 1
Предел символов для подсказки, по-видимому, является причиной, подобной MVP.
Для этого есть более подходящее решение.
Используйте textarea
с текстом электронной почты в качестве своего содержимого и используйте функцию select
, чтобы выбрать весь текст в текстовом поле, как вы сделали с подсказкой.
Пример:
$('#container').append('To copy emails to clipboard, press: Ctrl+C, then Enter <br />
<textarea id="emailsToCopy">'+emailsToCopy+'</textarea>');
$('#emailsToCopy').select().focus();
Предполагая, вы используете jquery. Если нет, вы можете использовать функцию select
для элемента DOM textarea.
var emailsTxtArea = document.getElementById(emailsToCopy);
emailsTxtArea.select();
emailsTxtArea.focus();
Ответ 2
Функция window.prompt() ограничена 2000 символами в Chromium. Если входная строка превышает этот предел (ваш пример имеет 2059 символов), строка ввода вырезается в середине, отмеченной точками. Это называется ellipsis.
Здесь демонстрация с использованием ровно 2000 символов (я заменил последние три символа на XXX): http://jsfiddle.net/MkYDz/2/
;[email protected]");
Ответ 3
Если бы у меня было больше очков репутации, я бы прокомментировал ответ Jitesh...
Если вы не используете jquery, вы не можете этого сделать:
emailsTxtArea.select().focus();
Вместо этого вы должны сделать это:
emailsTxtArea.select();
emailsTxtArea.focus();
В обычном javascript метод select не возвращает объект.