Ответ 1
API буфера обмена w3c реализован всеми браузерами http://caniuse.com/#feat=clipboard
Я использую приведенный ниже javascript для копирования текста в буфер обмена. Он работает в IE, но не работает в Firefox и Chrome.
Пожалуйста, советую мне, что не так?
function setDataToclipboard()
{
var str=document.getElementById("populatedString").value;
if (window.clipboardData && clipboardData.setData) {
clipboardData.setData("Text", str);
alert("Copied!");
}
}
API буфера обмена w3c реализован всеми браузерами http://caniuse.com/#feat=clipboard
Обработка буфера обмена не является кросс-браузером. Для кросс-браузерного решения вам нужна вспышка.
Посмотрите на эту библиотеку https://github.com/jonrohan/ZeroClipboard
Вы можете использовать ZeroClipboard следующим образом:
<button id="my-button" data-clipboard-text="Copy me!">Copy to Clipboard</button>
<script>
var clip = new ZeroClipboard(document.getElementById('my-button'));
</script>
Когда вы нажимаете на кнопку, текст Copy me!
будет помещен в буфер обмена.
Для дальнейших инструкций проверьте библиотечный API https://github.com/jonrohan/ZeroClipboard/blob/master/docs/instructions.md
Я думаю, что window.clipboardData - это только IE. Доступ к буферу является проблемой безопасности и, следовательно, не может быть легко выполнен в FF или Chrome.
См. эту тему: Как скопировать в буфер обмена в JavaScript?
Смотрите документацию для clipboardData
, в частности раздел, который гласит:
Здесь нет стандартов.
Вы используете проприетарные Microsoft gubbins, поэтому не следует ожидать работы с другими браузерами.
См. этот вопрос для кросс-браузерных методов доступа к буферу.
Существует черновик стандарта для доступа к буферу, но я не знаю о его реализации в дикой природе (и canIuse не знает ни об этом).
У меня была такая же проблема с Chrome и другими браузерами в последнее время. Однако недавно я обнаружил, что этот код работает в контентном поле в некоторых браузерах:
clipboard = e.originalEvent.clipboardData;
clipboard.setData('text/plain', plainData);
clipboard.setData('text/html', htmlData);
ПРИМЕЧАНИЕ: e в этом случае является событием копирования и/или вырезания. Это событие срабатывает и восстанавливается в действии onCopy()
или onCut()
.
Этот код подтвержден для работы в последних версиях следующих браузеров:
Internet Explorer, похоже, работает с window.clipboardData.setData
вместо этого, но имейте в виду, что буфер обмена IE будет принимать только данные 'text'
и 'url'
.
В то время как следующие браузеры могут обращаться к объекту системного буфера обмена, они не могут установить данные в буфер обмена, используя clipboard.setData
:
UntrustedDragDrop
в буфер обмена...Я обнаружил, что они не работают в Chrome или FF:
тип = "скрытый"
<input id="e" type="hidden" value="my text to copy to clipboard" />
стиль = "дисплей: нет;"
<input id="e" type="text" style="display:none;" value="my text to copy to clipboard" />
обмануть браузер этим
style = "position: absolute; top: -30;"
<input id="e" type="text" style="position: absolute; top: -30;" value="my text" />