Categories
JavaScript Answers

How to paste rich text from clipboard to HTML text area element?

Spread the love

Sometimes, we want to paste rich text from clipboard to HTML text area element.

In this article, we’ll look at how to paste rich text from clipboard to HTML text area element.

How to paste rich text from clipboard to HTML text area element?

To paste rich text from clipboard to HTML text area element, we can listen for the paste event and put the pasted content in a contenteditable element.

For instance, we write:

<div id="target" contenteditable></div>

to add a contenteditable div.

Then we write:

document.addEventListener('paste', (e) => {
  e.preventDefault();
  let pastedText = ''
  if (e.clipboardData && e.clipboardData.getData) {
    pastedText = e.clipboardData.getData('text/html');
  }
  document.getElementById('target').innerHTML = pastedText
});

We call document.addEventListener with 'paste' to listen for the paste event on the browser window.

We call it with a callback that calls e.preventDefault to prevent the default behavior,

And then we call e.clipboardData.getData to get the pasted data.

And we set the HTML content of the contenteditable div with:

document.getElementById('target').innerHTML = pastedText

As a result, we see the pasted text has the styles preserved.

Conclusion

To paste rich text from clipboard to HTML text area element, we can listen for the paste event and put the pasted content in a contenteditable element.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *