Tag info

Setup

scriptsrc="dist/clipboard.min.js">script>
newClipboardJS('.btn');

Internally, we need to fetch all elements that matches with your selector and attach event listeners for each one. But guess what? If you have hundreds of matches, this operation can consume a lot of memory.

A pretty common use case is to copy content from another element. You can do that by adding a attribute in your trigger element.

The value you include on this attribute needs to match another’s element selector.

inputid="foo"value="https://github.com/zenorocha/clipboard.js.git">buttonclass="btn"data-clipboard-target="#foo">imgsrc="assets/clippy.svg"alt="Copy to clipboard">button>

Additionally, you can define a attribute to specify if you want to either or content.

If you omit this attribute, will be used by default.

textareaid="bar">Mussum ipsum cacilds...textarea>buttonclass="btn"data-clipboard-action="cut"data-clipboard-target="#bar">    Cut to clipboardbutton>

As you may expect, the action only works on or elements.

Truth is, you don’t even need another element to copy its content from. You can just include a attribute in your trigger element.

buttonclass="btn"data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">    Copy to clipboardbutton>

Как очистить буфер обмена?

Стандартными средствами ОС Windows не предусмотрено специальной программы для очистки буфера. Поэтому, если существует необходимость удалить содержащуюся в буфере конфиденциальную информацию, следует просто поместить  в него что-то другое, например символ пробела. Конечно в результате такой операции буфер не будет совершенно пустым. А попытка скопировать в него невыделенный текст не приведет к успеху. Если такая ситуация не вполне устраивает и Вы хотите скопировать в буфер именно 0 байт, а не какой-то символ, то для этого можно запустить в консоли следующую команду.

cmd /c «echo off | clip»

Осуществить это можно через окно «Выполнить» в главном меню «Пуск» Windows. Вызвать это окно удобнее всего нажав Win-R.

Additional notes

Only works if the user takes an action

All calls must take place as a direct result of a user action, e.g. click event handler. This is a measure to prevent messing with the user’s clipboard when they don’t expect it.

See the Google Developers post here for more info.

Is it supported?

  • should return if the command «is supported by the browser».
  • and return if the will succeed if called now. Checking to ensure the command was called from a user-initiated thread and other requirements are met.

However as an example of browser compatibility issues, Google Chrome from ~April to ~October 2015 only returned from if the command was called from a user-initiated thread.

Note compatibility detail below.

Browser Compatibility Detail

Whilst a simple call to wrapped in a / block called as a result of a user click will get you the most compatibility use the following has some provisos:

Any call to , or should be wrapped in a / block.

Different browser implementations and browser versions throw differing types of exceptions when called instead of returning .

Вмешательство сторонних программ

Как уже упоминалось выше, стороннее программное обеспечение может оказывать влияние на корректность работы компонентов операционной системы.

Это могут быть как установленные программы, так и не полностью деинсталлированные, остаточные процессы которых ещё работают (обычно происходит это при удалении программного обеспечения, где в последствии требуется перезагрузка, но она откладывается пользователем).

Определить, действительно ли затруднения произошли по данной причине, можно несколькими путями:

1. Использование безопасного режима с последовательным запуском процессов

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

Нажмите сочетание клавиш «WIN» + «R» и введите команду «msconfig», откроется окно «Конфигурация системы», в котором перейдите на вкладку «Службы» (провести данные шаги можно и в обычном режиме).

Перед вами откроется список работающих и остановленных служб, в левом нижнем углу окна установите флажок в строке «Не отображать службы Microsoft» и далее, нажмите на соседнюю кнопку «Отключить все». Снова проверьте работу буфера обмена, если проблема не появляется, то однозначно ошибка кроется в работе программ, и для определения, в какой именно, и применяется последовательный запуск.

Из самого названия уже становится понятно, что требуется поочередно запускать процессы и проверять работу буфера. По мере проведения данных манипуляций может потребоваться перезагрузка компьютера, при активации (включения) программ, но в конечном счёте всё это приведёт к необходимым результатам.

И к слову, данный метод подходит для всех версий операционной системы «Windows XP/7/Vista/8/10».

2. Использование функционала «Средства записи действий по воспроизведению неполадок»

Для того чтобы открыть данную утилиту, нажмите уже упомянутую выше комбинацию «WIN» + «R» и введите «rsp.exe» или пройдите «Пуск» – «Стандартные» – «Windows» – «Средства записи действий» – для Windows 10 или «Пуск» – «Стандартные» – «Средство записи действий по воспроизведению неполадок» – для Windows 7 и 8.1.

С помощью данной утилиты можно пошагово отследить весь путь работы процесса буферизации и определить, в каком моменте возникают затруднения.

Средство записи действий в Windows 10

Утилита записывает все действия от старта записи, делая скриншоты на каждом шаге и поясняя все проводимые действия.

3. Использование функции «Get Open Clipboard Window»

Данная функция предоставляет информацию об актуальном процессе, который использует в настоящий момент буфер обмена. В ответ на запуск функции появится окно, в котором будет указано уведомление об отсутствии видимых проблем или будет указан код ошибки.

4. Использование новой учётной записи

Вполне вероятно, что причина кроется в некорректной работе учётной записи пользователя, для проверки создайте новую учётную запись Windows и проверьте в ней работу буфера обмена.

Going Advanced

In some cases, adding an ID, class and the  attribute to the target elements of our content is not feasible — something that could happen when dealing with lots of legacy content as well as multiple target elements.

As an example, let’s say we have a website whose content comprises paragraphs and a number of code snippets. We’ll use PrismJS, a fantastic library to display code with properly highlighted syntax. PrismJS does not come with the “copy” utility, so we’ve decided to do that with Clipboard.js. But, the problem is, we have hundred of pages throughout our website with that kind of content. 

This is where the Clipboard.js APIs come into play.

Looking into the APIs

Clipboard.js presents a couple of events,  and , which respectively allow us to identify whether it has effectively copied the content, or failed. The  would likely occur in Safari as it does not support the copy/cut command from the execCommand method that Clipboard.js relies upon.

Furthermore, these events also return the following Properties:

  • : return the action we aim at the target element. This will return either  or 
  • : only returned upon the  event. It returns the text that has been copied or cut from the target element.
  • : returns the element which triggered the  or the  action.

These APIs enable us to implement Clipboard.js into our content without directly modifying its wrapping elements. In our case, we can use them to add the “copy” utility to the code snippets in our legacy content.

Работаем с мышкой

Итак, вы бороздите просторы Интернета, и какая-то информация вас настолько заинтересовала, что вы пожелали ее скопировать и сохранить в отдельный файл Ворд, чтобы потом использовать для каких-либо нужд. Поступаем следующим образом:

● Выделяем. Для этого нажимаем левую клавишу мышки протягиваем до конца цитаты. Отпускаем мышку, и видим, что необходимый кусок текста был выделен.

● Нажимаем правую клавишу мышки, перед нами открывается меню. В зависимости от настроек вашей операционной системы, пунктов может быть 5, 10 и даже больше. Ваша задача — выбрать «Копировать» или «Copy». Если вы работаете в англоязычной версии Google Docs, то таким пунктом будет «Copy». Если в русскоязычной версии Excel, то «Копировать». Ничего сложного.

● Теперь переходите в документ Word или в Блокнот, или в другое окно браузера и снова нажимаете правую клавишу мышки. Появляется то же меню. Нажимайте «Вставить»,  «Paste» или нажимаете на значок с буквой А, как у меня на компьютере на Windows 7. Все готово!

IMPORTANT (noted here 2020/02/20)

Note that since this post was originally written deprecation of permissions in cross-origin IFRAMEs and other IFRAME «sandboxing» prevents the embedded demos «Run code snippet» buttons and «codepen.io example» from working in some browsers (including Chrome and Microsoft Edge).

To develop create your own web page, serve that page over HTTPS connection to test and develop against.

Here is a test/demo page which demonstrates the code working:
https://deanmarktaylor.github.io/clipboard-test/

Async + Fallback

Due to the level of browser support for the new Async Clipboard API you will likely want to fallback to the method to get good browser coverage.

Here is a simple example (may not work embedded in this site, read «important» note above):

(codepen.io example may not work, read «important» note above)
Note that this snippet is not working well in Stack Overflow’s embedded preview you can try it here: https://codepen.io/DeanMarkTaylor/pen/RMRaJX?editors=1011

Async Clipboard API

  • Chrome 66 announcement post (March 2018)
  • Reference draft documentation

Note that there is an ability to «request permission» and test for access to the clipboard via the permissions API in Chrome 66.

Additional notes

Only works if the user takes an action

All calls must take place as a direct result of a user action, e.g. click event handler. This is a measure to prevent messing with the user’s clipboard when they don’t expect it.

See the Google Developers post here for more info.

Is it supported?

  • should return if the command «is supported by the browser».
  • and return if the will succeed if called now. Checking to ensure the command was called from a user-initiated thread and other requirements are met.

However as an example of browser compatibility issues, Google Chrome from ~April to ~October 2015 only returned from if the command was called from a user-initiated thread.

Note compatibility detail below.

Browser Compatibility Detail

Whilst a simple call to wrapped in a / block called as a result of a user click will get you the most compatibility use the following has some provisos:

Any call to , or should be wrapped in a / block.

Different browser implementations and browser versions throw differing types of exceptions when called instead of returning .

Прокси-объекты – главная причина

Но самой главной причиной, почему буфер обмена пуст, является ситуация, когда просто нечего было копировать. Объекты, все или некоторые, на самом деле не принадлежат чертежу – это прокси-объекты, хранимые на внешнем прокси-сервере. Такие объекты, ввиду их неопределённого формата и большого объёма занимаемой памяти – источник больших проблем.

Для удаления прокси-объектов их удобнее сначала расчленить и внедрить в память чертежа командой: ExplodeAllProxy.

Команда explodeallproxy в Автокаде

А затем уже удалить: RemoveAllProxy – удаляются все прокси-объекты, которые не удалось расчленить.

Возможно, для выполнения приведённых команд потребуется скачать внешнюю утилиту AutoCAD’a – Explode Proxy

Тут важно проследить за тем, чтобы версия утилиты точно подходила под используемую версию Автокада

Загрузка происходит с жесткого диска ПК через команду «Загрузить приложение», доступную через «Вход в службы/Приложения”. При необходимости постоянного использования данной утилиты её можно включить в список загружаемых по умолчанию – назначение нужно сделать при установке утилиты.

Обращаем внимание на то, что команда RemoveAllProxy запрашивает очистку списка масштабов – по умолчанию предлагается очистку произвести, с этим нужно обязательно согласиться. После удаления прокси-объектов очень полезно запустить команду: _Audit – это для проверки ошибок в процессе удаления proxy-объектов

После удаления прокси-объектов очень полезно запустить команду: _Audit – это для проверки ошибок в процессе удаления proxy-объектов.

Examples

The following are complete, working examples of using the clipboard client library in HTML pages.

Minimal Example

Here is a quick example using as few calls as possible:

html>
  body>
    div id="d_clip_button" class="clip_button" data-clipboard-text="Copy Me!" title="Click to copy." style="border:1px solid black; padding:20px;">Copy To Clipboarddiv>

    script type="text/javascript" src="ZeroClipboard.js">script>
    script type="text/javascript">
      var client = new ZeroClipboard( document.getElementById('d_clip_button') );
    script>
  body>
html>

When clicked, the text «Copy me!» will be copied to the clipboard.

A More Complete Example

Here is a more complete example which exercises many of the configuration options and event handlers:

html>
  head>
    style type="text/css">
      .clip_button {
        text-align: center;
        border: 1px solid black;
        background-color: #ccc;
        margin: 10px;
        padding: 10px;
      }
      .clip_button.zeroclipboard-is-hover { background-color: #eee; }
      .clip_button.zeroclipboard-is-active { background-color: #aaa; }
    style>
  head>
  body>
    script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">script>
    script type="text/javascript" src="ZeroClipboard.js">script>

    div class="clip_button">Copy To Clipboarddiv>
    div class="clip_button">Copy This Too!div>

    script type="text/javascript">
      var client = new ZeroClipboard( $('.clip_button') );

      client.on( 'ready', function(event) {
        // console.log( 'movie is loaded' );

        client.on( 'copy', function(event) {
          event.clipboardData.setData('text/plain', event.target.innerHTML);
        } );

        client.on( 'aftercopy', function(event) {
          console.log('Copied text to clipboard: ' + event.data'text/plain');
        } );
      } );

      client.on( 'error', function(event) {
        // console.log( 'ZeroClipboard error of type "' + event.name + '": ' + event.message );
        ZeroClipboard.destroy();
      } );
    script>
  body>
html>

«Starter Snippets» for Playground Sites

IMPORTANT: ZeroClipboard will NOT work on the «Edit» pages for any of the following online code playground sites due to . However, ZeroClipboard will work on the «View» pages if and only if you use the very specifically formatted URL patterns provided below.

  • JSFiddle
  • JSBin
  • CodePen

Setup

First, include the script located on the folder or load it from a third-party CDN provider.

script src="dist/clipboard.min.js">script>

Now, you need to instantiate it by , , or .

new ClipboardJS('.btn');

Internally, we need to fetch all elements that matches with your selector and attach event listeners for each one. But guess what? If you have hundreds of matches, this operation can consume a lot of memory.

Copy text from another element

A pretty common use case is to copy content from another element. You can do that by adding a attribute in your trigger element.

The value you include on this attribute needs to match another’s element selector.

input id="foo" value="https://github.com/zenorocha/clipboard.js.git">


button class="btn" data-clipboard-target="#foo">
    img src="assets/clippy.svg" alt="Copy to clipboard">
button>

Cut text from another element

Additionally, you can define a attribute to specify if you want to either or content.

If you omit this attribute, will be used by default.

textarea id="bar">Mussum ipsum cacilds...textarea>


button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">
    Cut to clipboard
button>

As you may expect, the action only works on or elements.

Copy text from attribute

Truth is, you don’t even need another element to copy its content from. You can just include a attribute in your trigger element.

button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
    Copy to clipboard
button>

О буфере обмена простыми словами — для новичков

Когда мы наводим на какой-то файл или папку курсор, нажимаем правой кнопкой мыши и выбираем «Копировать» (или сочетание клавиш Ctrl+C), в этом момент информация помещается в буфер обмена.

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

То есть, когда мы перейдем в нужное место на нашем компьютере и опять же нажмем правой кнопкой мыши, но выберем уже «Вставить» (или сочетание клавиш Ctrl+V), то та папка, или файл, или кусок текста, который вы скопировали, возьмется из буфера обмена и вставится в нужное вам место.

А это значит, что начинающему пользователю не стоит беспокоиться о том, где именно это информация храниться. Главное, что мы можем вставить ее в нужное нам место.

Вы также можете вставлять информацию из буфера любое количество раз, т.е. при вставке информация от-туда не удаляется, она как-бы копируется.

И если вы скопировали папку, то вы можете вставить ее и на диск С, и на диск Е и в любое другое место на компьютере.

Также обратите внимание на то, что если вы скопировали в буфер обмена какой-то кусок текста из документа, допустим программы Microsoft Word, или веб-страницы, то вам нужно в документ или текстовое поле его и вставлять. Просто в папку вставить не получится

И наоборот, скопированную папку в документ тоже вы не вставите.

Также будьте осторожны с важной информацией, которую вы скопировали в буфер: если компьютер неожиданно выключится, перезагрузится, или вы случайно забудете и выключите его, то информация из буфера обмена удалится. Поэтому сразу же когда что-то поместили в него, вставьте в нужное вам место и сохраните, если это какой-то документ

Поэтому сразу же когда что-то поместили в него, вставьте в нужное вам место и сохраните, если это какой-то документ.

Чистить буфер не обязательно, ведь копируя какой-то файл, или текст, он заменяет предыдущий и поэтому память вашего компьютера засорятся не будет.

Комбинации клавиш, которые необходимы для работы

Ctrl+A Выделить всё. Это могут быть все папки, весь текст, или все файлы в папке
Ctrl+C Копировать выделенный документ или документы, файлы в папке
Ctrl+X Вырезать выделенное. Аналогично предыдущему пункту, только вырезаем
Ctrl+V Вставить все скопированные или вырезанное, что находится в буфере обмена

Setup

To use the library, simply include the following JavaScript file in your page:

script type="text/javascript" src="ZeroClipboard.js">script>

You also need to have the «» file available to the browser. If this file is
located in the same directory as your ZeroClipboard.js files, then it will work out of the box. However, if the
SWF file is hosted elsewhere, you need to set the URL like this (place this code after the script
tag):

ZeroClipboard.config( { swfPath: "http://YOURSERVER/path/ZeroClipboard.swf" } );

If you intend to use the minified version of ZeroClipboard, you will likely also want to do one of the following two things:

  1. Include the SourceMap file («ZeroClipboard.min.map») in the same hosted directory in order to be able to debug as unminified JavaScript in your browser dev tools.
  2. Open the «ZeroClipboard.min.js» file and remove the last line. It is a comment that begins with . Removing this line will prevent the browsers’ dev tools from requesting the file.

SourceMap Error Messages

The SourceMap is not required for normal operation and typically will not be requested by the browser unless the dev tools are open. If you do NOT include the SourceMap in your hosted directory , then you may see a variety of confusing warnings in your dev tools’ JavaScript console:

Chrome

You may not see any error message in Chrome’s console. However, you will likely see 404 responses in the Network tab, e.g.

Что такое буфер обмена

Сам буфер обмена создан для того чтобы упростить использования компьютера и сэкономить Ваше время. Так как с помощью буфера обмена Вы можете копировать и сохранять не только текст, а и другие объекты, например изображения.

Чтобы воспользоваться буфером обмена Вам нужно всего лижи скопировать текст или любой другой объект. Для этого Вы можете использовать горячие клавиши Windows 10.

Ctrl+V или Shift+Insert вставить текст с буфера обмена
Ctrl+C или Ctrl+Insert скопировать выделенный текст в буфер обмена
Ctrl+X вырезать выделенный текст в буфер обмена
Ctrl+A выделить весь текст в текущей строке, если строка содержит текст
Win+V открыть журнал буфера обмена (доступно начиная с версии 1809)

Само приложение буфера обмена ещё с времен Windows XP расположилось по пути C:\Windows\system32 и называется clipbrd.exe. После перехода на Windows 7 пользователи активные могли заметить изменения в названии, которое стало clip.exe.

Главным отличием между clipbrd.exe и clip.exe стало то, что в Windows XP Вы могли легко открыть приложение clipbrd.exe и посмотреть данные в буфере обмена. В новых версиях операционной системы Windows эта возможность уже пропала.

Два простых вопроса, не связанных с Автокадом

Первая проблема может напомнить вам работу с некоторыми версиями Фотошопа, которые категорически не воспринимают использование управляющих клавиш, когда клавиатура на русском языке. Другими словами, если вы хотите скопировать или вырезать в буфер обмена привычными сочетаниями Ctrl+C и Ctrl+X, находясь в русском, это у вас не получится. Переходите на английский – всё работает нормально.

Проверьте, не из того же поля ягода ваш Автокад.

Вторая проблема посерьёзнее и связана с особенностью уже собственно AutoCAD – программы объёмной, имеющей массу возможностей. Эти возможности – множество шрифтов, линий, слоёв (самое главное), трёхмерных объектов (принципиально) – если ими пользоваться «без царя в голове», очень много занимают места в оперативной памяти, и у вас, когда производите копирование в буфер обмена, просто не хватает в нём места под весь чертёж. Возникает задача двойного рода: во-первых, упростить чертёж, очистить его от всего ненужного; во-вторых, когда это выполнено, увеличить объём буфера, это уже относится к операционной системе ПК.

Под упрощением чертежа понимается:

  • удаление ненужных и неиспользуемых слоёв;
  • объединение слоёв, это по возможности;
  • оптимизация использования линий – проверьте целесообразность применения некоторых: иногда не производится копирование не всего чертежа, а отдельных линий, их, скорее всего, просто нет в системе, оптимизация поможет избавиться от таких потерь;
  • оптимизация использования шрифтов – это очень плохой стиль и чертежа, и работы в AutoCAD’е, когда шрифты используются без всякой системы. Одно из следствий такого поведения как раз очень большой объём памяти, занимаемый чертежом, замедление скорости работы с ним, отказ в размещении в буфере обмена.
  • оптимизация использования размерных стилей – бессистемное применение размерных стилей оказывает такое же негативное влияние на чертёж, как и бессистемное использование шрифтов. Здесь тоже потребуется пересмотр использования всех стилей, что сделать очень непросто, если чертёж большой и создавался другим.

Выделение фрагмента

Перед тем, как скопировать в буфер обмена информацию, ее нужно сначала выделить. Чаще всего это делается мышью, но нередко и клавиатурой. Для совершения выделения мышью нужно поместить стрелку мыши в начало или конец интересуемого фрагмента, зажать левую кнопку у мыши и протянуть стрелку в другой конец фрагмента. При этом цвет выделенной области обычно меняется, давая знать что эта область выделена.

Этот универсальный способ выделения работает как при работе с текстами, так и в графических, звуковых и видеоредакторах, а также при оперировании с файлами.

Если при редактировании имеется курсор, можно произвести выделение и клавишами. Для этого следует расположить курсор в начале или конце выделяемого фрагмента, зажать клавишу Shift, и держа ее нажатой стрелками или мышкой переместить курсор в противоположный конец выделяемой области. Замечательной особенностью при задействовании клавиатуры является использование клавишной комбинации Ctrl-A, которая позволяет выделить все содержимое документа или папки.

В свою очередь при работе мышкой есть другая удобная особенность — возможность выделить несколько разрозненных фрагментов документа либо файлов. В этом случае в процессе работы мышью нужно держать зажатым Ctrl.

Логично предположить, что некий дополнительный эффект может привносить использование кнопки Alt. И действительно — в ряде текстовых редакторов зажав эту клавишу можно пометить вертикальный текстовый блок.

Или в видеоредакторах с этой клавишей можно особенным образом отмечать нужные блоки на монтажном столе.

Ссылка на основную публикацию