Использование execCommand (Javascript) для копирования скрытого текста в буфер обмена
Я пытаюсь скопировать в буфер без использования Flash, я планирую вернуться к Flash с использованиемZeroClipboard если браузер несовместим с подходом javascript.
У меня есть прослушиватель onClick для кнопки, которая выглядит следующим образом:
$(buttonWhereActionWillBeTriggered).click(function(){
var copyDiv = document.getElementById(inputContainingTextToBeCopied);
copyDiv.focus();
document.execCommand('SelectAll');
document.execCommand("Copy", false, null);
}
и поле ввода выглядит следующим образом:
<input type="text" name="Element To Be Copied" id="inputContainingTextToBeCopied" value="foo"/>
В настоящее время это работает, как и ожидалось, но дизайн требует, чтобы поле, содержащее текст, который нужно скопировать, было невидимым. Я пробовал обе настройкиtype="hidden"
а такжеstyle="display: none"
ни один из которых не удалось. В результате кнопка выбирает всю страницу и копирует весь контент в буфер обмена пользователя.
Я относительно уверен, что причина не в браузере, а в простом случае, я тестирую на Chrome (версия 43.0.2357.134 (64-разрядная версия)) на Mac OS X 10.10.4.
Есть ли способ, которым я могу поддерживать функциональность, когда <input> виден, скрывая его? или если не альтернативный маршрут я могу взять?
Мне известны подобные вопросы, ни один из которых не касается моей проблемы, будь то из-за того, что я слишком стар, на самом деле не использую Javascript или не соответствует конкретному сценарию.Вот хороший ответ для тех, у кого есть похожие, менее конкретные проблемы.