Я пытаюсь скопировать в буфер обмена без использования 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.
Есть ли способ, которым я могу поддерживать функциональность, когда < вход > виден во время его скрытия? или если не альтернативный маршрут, который я могу взять?
Я знаю похожие вопросы, ни одна из которых не затрагивает мою проблему, либо из-за того, что она слишком стар, а не на самом деле не использует Javascript или не подходит для конкретного сценария. Здесь хороший ответ для тех, у кого есть похожие, менее конкретные проблемы.