2014-12-18 2 views
2

У меня есть html-вход. Использование javascript & jQuery Я могу выбрать значение ввода. Теперь я хочу запустить ctrl + c, чтобы скопировать это значение в буфер обмена. Я могу использовать некоторые плагины, такие как zClip/zeroClip, но в этих плагинах используется флэш-память, которая не поддерживается во всех браузерах. Есть ли другой вариант для копирования этого значения в клипе?Fire copy с помощью javascript

Код должен работать в хром, хром, фф, опера & т.е. 10.

+0

возможно дубликат (http://stackoverflow.com/questions/400212/copy-to-the-clipboard-in-javascript) – urbz

+0

Я видел этот вопрос. Но в этом вопросе ссылки основаны на вспышке. И в моем случае мой код должен поддерживать все браузеры, поэтому я не могу использовать flash. – Indra

ответ

2

<iframe src="https://cdn.rawgit.com/Triforcey/clip-j/38e8bf144e4633fffde57c675171b22211174e24/test.html" frameborder="0" width="100%" height="100%" style="margin: 0px;"></iframe>

Это возможно, несмотря на многих людей, которые не знают об этом решении. (Это очень новое.) Я создал чрезвычайно удобную библиотеку JavaScript для этого клипа-j. Here - это страница GitHub. В основном, как это работает, он использует document.execCommand('copy'); с несколькими другими строками кода, чтобы оптимизировать его, чтобы обойти ограничение, которое необходимо для просмотра скопированного текста. Таким образом, это простое решение не требует Flash и полностью невидимо! Вот исходный код: [? Скопировать в буфер обмена в JavaScript]

function clip(text) { 
    var copyElement = document.createElement('input'); 
    copyElement.setAttribute('type', 'text'); 
    copyElement.setAttribute('value', text); 
    copyElement = document.body.appendChild(copyElement); 
    copyElement.select(); 
    document.execCommand('copy'); 
    copyElement.remove(); 
} 
+0

Поскольку эта функция очень мала, вместо добавления библиотеки я использовал этот код непосредственно в приложении. Он работает практически во всех браузерах, кроме сафари. Как я могу это исправить? – Indra

+0

Я бы рекомендовал использовать zeroclipboard в качестве резервной копии на данный момент, почему все еще есть некоторые браузеры, которые не имеют поддержки, они работают над этим. – Triforcey

+0

Я видел проблему в сафари. В некоторых браузерах он бросает исключения для команды document.execCommand ('copy'), поэтому он переходит к блоку кэша и отображает приглашение. Но в сафари это не вызывает никакой ошибки, и поэтому не отображается подсказка. Поэтому для его решения я написал var linkCopied = false; linkCopied = document.execCommand ('copy'); И затем, наконец, в блоке, если нет ошибки, а linkCopied - false, тогда отобразится приглашение. – Indra

2

Это невозможно достичь этого с помощью JavaScript (или на основе структур) из соображений безопасности. Это можно сделать только с помощью flash (для чего вы можете использовать zeroclip и т. Д.).

Также см:

Смежные вопросы