整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JS短文:如何使用 JS 将文本以纯文本形式粘贴到可编辑内容元素中?

载说明:原创不易,未经授权,谢绝任何形式的转载

有时候,我们希望使用 JavaScript 将文本以纯文本形式粘贴到可编辑内容元素中。

在本文中,我们将讨论如何使用 JavaScript 将文本以纯文本形式粘贴到可编辑内容元素中。

使用JavaScript将文本粘贴为纯文本到可编辑内容元素中

我们可以通过监听粘贴事件并修改粘贴行为,将纯文本粘贴到可编辑内容元素中。

例如,如果我们有以下的 div 元素:

<div contenteditable>
</div>

然后,我们可以通过监听粘贴事件来修改粘贴行为:

// 获取可编辑的 div 元素
const editor = document.querySelector('div');

// 监听粘贴事件
editor.addEventListener("paste", (e) => {
  e.preventDefault(); // 阻止默认粘贴行为

  // 获取粘贴的纯文本内容
  const text = e.clipboardData.getData('text/plain');

  // 将纯文本插入到可编辑元素中
  document.execCommand("insertHTML", false, text);
});

当你需要在可编辑的内容元素中以纯文本形式粘贴文本时,你可以使用上述代码来实现。让我逐步解释每一部分的作用:

1. 首先,我们通过 `document.querySelector('div')` 获取到一个可编辑的 `<div>` 元素,这个元素将用于粘贴操作。

2. 然后,我们使用 `editor.addEventListener("paste", (e) => { ... });` 添加一个粘贴事件监听器。这意味着当用户尝试粘贴内容时,我们将执行指定的操作。

3. 在事件监听器的函数内部,`e` 是代表事件对象的参数。我们使用 `e.preventDefault();` 来阻止浏览器默认的粘贴行为,以便我们能够自行处理粘贴操作。

4. `e.clipboardData.getData('text/plain')` 这行代码用于从剪贴板中获取纯文本内容。`e.clipboardData` 是一个包含剪贴板数据的对象,我们使用 `getData('text/plain')` 方法来获取纯文本数据。

5. 最后,我们使用 `document.execCommand("insertHTML", false, text);` 将获取到的纯文本内容插入到可编辑元素中。`insertHTML` 是一个命令,它允许我们将指定的 HTML 或文本插入到文档中。第三个参数 `text` 是要插入的内容。

综合起来,当用户在可编辑元素中粘贴内容时,粘贴事件会触发。代码阻止默认的粘贴行为,然后从剪贴板中获取纯文本数据,并将它以纯文本的形式插入到可编辑的 `<div>` 元素中,实现了将文本粘贴为纯文本的效果。

结论

通过监听粘贴事件并修改粘贴行为,我们可以将纯文本粘贴到可编辑内容元素中。

由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。

、nuget 引用

Select.HtmlToPdf

2、方法

  • using SelectPdf;using System.Collections.Specialized;using System.IO;using System.Web;
    namespace BQoolCommon.Helpers.File{ public class WebToPdf { public WebToPdf() { //SelectPdf.GlobalProperties.LicenseKey = "your-license-key"; }
    /// <summary> /// 將 Html 轉成 PDF,並儲存成檔案 /// </summary> /// <param name="html">html</param> /// <param name="fileName">絕對路徑</param> public void SaveToFileByHtml(string html, string fileName) { var doc = SetPdfDocument(html); doc.Save(fileName); }
    /// <summary> /// 傳入 Url 轉成 PDF,並儲存成檔案 /// </summary> /// <param name="url">url</param> /// <param name="fileName">絕對路徑</param> /// <param name="httpCookies">Cookies</param> public void SaveToFileByUrl(string url, string fileName, NameValueCollection httpCookies) { var doc = SetPdfDocument(url, httpCookies); doc.Save(fileName); }
    /// <summary> /// 將 Html 轉成 PDF,並輸出成 byte[] 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public byte[] GetFileByteByHtml(string html) { var doc = SetPdfDocument(html); return doc.Save(); }
    /// <summary> /// 傳入 Url 轉成 PDF,並輸出成 byte[] 格式 /// </summary> /// <param name="url">url</param> /// <param name="httpCookies">Cookies</param> /// <returns></returns> public byte[] GetFileByteByUrl(string url, NameValueCollection httpCookies) { var doc = SetPdfDocument(url, httpCookies); return doc.Save(); }
    /// <summary> /// 將 Html 轉成 PDF,並輸出成 Stream 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public Stream GetFileStreamByHtml(string html) { var doc = SetPdfDocument(html); var pdfStream = new MemoryStream();
    doc.Save(pdfStream); pdfStream.Position = 0;
    return pdfStream; }
    /// <summary> /// 傳入 Url 轉成 PDF,並輸出成 Stream 格式 /// </summary> /// <param name="html">html</param> /// <returns></returns> public Stream GetFileStreamByUrl(string url, NameValueCollection httpCookies) { var doc = SetPdfDocument(url, httpCookies); var pdfStream = new MemoryStream();
    doc.Save(pdfStream); pdfStream.Position = 0;
    return pdfStream; }
    private PdfDocument SetPdfDocument(string html) { var converter = new HtmlToPdf();
    converter.Options.WebPageWidth = 1200; html = HttpUtility.HtmlDecode(html);
    return converter.ConvertHtmlString(html); }
    private PdfDocument SetPdfDocument(string url, NameValueCollection httpCookies) { var converter = new HtmlToPdf(); converter.Options.WebPageWidth = 1200;
    if (httpCookies != && httpCookies.Count != 0) { converter.Options.HttpCookies.Add(httpCookies); }
    return converter.ConvertUrl(url); }
    }}

们在电影时经常能够看到一些炫酷的打字机效果,用于显示一些地名或剧情简介。我们在网页中也能够实现类似的效果,目前网上已经有很多打字机效果的插件,如轻量级响应式jQuery打字机特效插件和逼真的js打字机效果插件等。那么,实现类似的打字机效果困难吗?其实要制作一个打字机效果非常简单,下面我们就以纯JavaScript来实现一个炫酷的打字机效果。

在完成这个打字机效果之前,先来体验一下打字机的效果:

请点击此处输入图片描述

在输入框输入你想输入的内容后点击开始打印,上面的展示栏则以想打印一样一个字一个字输出。

首先建立显示打字效果的容器;

请点击此处输入图片描述

ID为teletype的<span>元素用来显示打印的文字,开始是它带有一个hidden属性,用来阻止文字在开始时就显示出来。

定义一个光标元素,它用于模拟打字时闪烁的光标效果:

请点击此处输入图片描述

然后将光标元素插入到span#teletype节点中。

请点击此处输入图片描述

开始打印文字时,将span#teletype元素的hidden属性去掉。

请点击此处输入图片描述

然后通过一个计时器不断的刷新span#teletype元素中的内容,通过一个counter计数器来不断累加要显示的文字,模拟出打字的效果。

请点击此处输入图片描述

完整js代码: