Скопируйте и вставьте выделенный текст в буфер обмена, используя JavaScript - PullRequest
0 голосов
/ 08 августа 2011

Я создаю настраиваемое меню правой кнопки мыши для своей системы, и мне нужно знать, как сделать функцию JavaScript для копирования выделенного текста, в основном на 100%, как в исходном меню правой кнопки мыши.

Мне известны обходные решения Flash.Я хочу сделать это в JavaScript.

Каждый ответ, который я видел до сих пор, является лишь половинным ответом, потому что ни один из них не объясняет, как сделать кнопку копирования для выделенного текста - все, что они делают, это копируютпредопределенный текст или текст из текстового поля.

Ответы [ 4 ]

1 голос
/ 08 августа 2011

Для браузеров без IE вам, скорее всего, придется использовать флэш-решение.Однако для IE этот метод работает отлично:

function copyToClipboard(s) {           //only works in IE :(
    if (window.clipboardData && clipboardData.setData) {
        clipboardData.setData('text', s);
    }
}
1 голос
/ 08 августа 2011

Современные браузеры блокируют доступ к буферу обмена. Пользователь должен иметь правильную настройку безопасности.

Есть флэш Обходные пути , но они не самые лучшие.

0 голосов
/ 08 августа 2011

Работоспособный кросс-браузерный подход (за исключением iOS) заключается в использовании ExternalInterface и setClipboard . Таким образом, у вас будет файл SWF, flash, который слушает только функцию, которую вы вызываете из Javascript для установки clipBoard.

0 голосов
/ 08 августа 2011

не знаю, сработает ли это, но поиск в Google дал:

function getSel(){
  var w=window,d=document,gS='getSelection';
  return (''+(w[gS]?w[gS]():d[gS]?d[gS]):d.selection.createRange().text)).replace(/(^\s+|\s+$)/g,'');
}

http://snippets.dzone.com/posts/show/2914

...