Spec-Zone.ru › Web APIs

Элемент: событие paste

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2017 года.

  • Узнать больше
  • Посмотреть полную совместимость
  • Отправить отзыв

Событие paste API буфера обмена вызывается, когда пользователь инициирует действие «вставка» через пользовательский интерфейс браузера.

Если курсор находится в контексте редактирования (например, в <textarea> или элементе с атрибутом contenteditable установленным в true) то стандартным действием является вставка содержимого буфера обмена в документ в позиции курсора.

Обработчик этого события может получить доступ к содержимому буфера обмена, вызвав getData() на свойстве clipboardData события.

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

Можно создать и вызвать синтетическое paste событие, но это не повлияет на содержимое документа.

Это событие передаётся вверх по иерархии, является отменяемым и составным.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.

addEventListener("paste", (event) => {});

onpaste = (event) => {};

Тип события

Объект ClipboardEvent. Наследуется от Event.

Событие ClipboardEvent

Примеры

Пример

HTML

<div class="source" contenteditable="true">Copy text from this box.</div>
<div class="target" contenteditable="true">And paste it into this one.</div>

JavaScript

const target = document.querySelector("div.target");

target.addEventListener("paste", (event) => {
  event.preventDefault();

  let paste = (event.clipboardData || window.clipboardData).getData("text");
  paste = paste.toUpperCase();
  const selection = window.getSelection();
  if (!selection.rangeCount) return;
  selection.deleteFromDocument();
  selection.getRangeAt(0).insertNode(document.createTextNode(paste));
  selection.collapseToEnd();
});

Результат

Спецификации

Спецификация
API буфера обмена и события
# clipboard-event-paste
HTML
# handler-onpaste

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
paste_event 1 12 22 ≤12.1 3 18 22 ≤12.1 3 1.0 ≤37

См. также

  • Связанные события: cut, copy
  • Это событие на Document целей: paste
  • Это событие на Window целей: paste

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API