载说明:原创不易,未经授权,谢绝任何形式的转载
有时候,我们希望使用 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代码:
*请认真填写需求信息,我们会在24小时内与您取得联系。