当前位置: 首页 > 面试题库 >

Javascript中的拦截粘贴事件

段干帅
2023-03-14
问题内容

有没有办法在JavaScript中拦截粘贴事件并获取原始值,对其进行更改并将关联的DOM元素的值设置为修改后的值?

例如,我有一个用户试图复制并粘贴带空格的字符串,并且字符串的长度超过了我的文本框的最大长度。我想截取文本,删除空格,然后使用更改值设置文本框的值。

这可能吗?


问题答案:

您可以通过附加“ onpaste”处理程序来拦截粘贴事件,并通过window.clipboardData.getData('Text')在IE中使用“
”或event.clipboardData.getData('text/plain')在其他浏览器中使用“ ” 来获取粘贴的文本。

例如:

var myElement = document.getElementById('pasteElement');
myElement.onpaste = function(e) {
  var pastedText = undefined;
  if (window.clipboardData && window.clipboardData.getData) { // IE
    pastedText = window.clipboardData.getData('Text');
  } else if (e.clipboardData && e.clipboardData.getData) {
    pastedText = e.clipboardData.getData('text/plain');
  }
  alert(pastedText); // Process and handle text...
  return false; // Prevent the default handler from running.
};

如@pimvdb所述,e.originalEvent.clipboardData如果使用jQuery ,则需要使用“ ”。



 类似资料:
  • 问题内容: 如何在Angular 1.1.5中的输入中的“粘贴”事件上执行功能?我知道有一个输入指令。但每次输入更改时都会触发,初始粘贴只需要一次。 用例:我有一个URL输入。我想在用户粘贴URL后执行一个功能。用户还可以手动输入URL并按Enter执行功能。 - 更新: 自Angular 1.2.0起,ngPaste是本机指令。 问题答案: 从Angular 1.2.0开始,存在ngPaste指

  • 本文向大家介绍javascript在网页中实现读取剪贴板粘贴截图功能,包括了javascript在网页中实现读取剪贴板粘贴截图功能的使用技巧和注意事项,需要的朋友参考一下 见某网站的输入框支持截屏粘贴的功能,觉得有点意思,于是将代码扒出来分享下。 可惜,目前仅有高版本的 Chrome 浏览器支持这样直接粘贴,其他浏览器目前为止还无法粘贴( IE11没测试过 ),当然这种增强型的用户体验功能有总比没

  • 问题内容: Web应用程序如何检测粘贴事件并检索要粘贴的数据? 在将文本粘贴到RTF编辑器中之前,我想删除HTML内容。 之后粘贴后清除文本是可行的,但是问题是所有以前的格式都丢失了。例如,我可以在编辑器中写一个句子并将其设为粗体,但是当我粘贴新文本时,所有格式都将丢失。我只想清除粘贴的文本,并保留所有以前的格式。 理想情况下,该解决方案应可在所有现代浏览器(例如MSIE,Gecko,Chrome

  • 问题内容: 在我的系统中编辑页面时,用户可能会决定导航到另一个网站,这样做可能会丢失他们尚未保存的所有编辑。 我想拦截任何尝试转到另一个页面的尝试,并提示用户确保他们希望这样做,因为他们可能会丢失当前的工作。 Gmail的执行方式与此非常相似。例如,撰写一封新电子邮件,开始在邮件正文中键入内容,然后在地址栏中输入新位置(例如twitter.com等)。它将提示您“确定吗?” 想法如何复制这个?我的

  • 问题内容: 根据下面介绍的示例,我有一个基本的编辑器。有三种方法可以在区域内粘贴文本: + 右键单击->粘贴 右键单击->作为纯文本粘贴 我想只粘贴没有任何HTML标记的纯文本。如何强制前两个动作粘贴纯文本? 可能的解决方案: 我想到的方法是为(+ )的keyup事件设置侦听器,并在粘贴之前剥离HTML标记。 这是最好的解决方案吗? 避免粘贴任何HTML标记是否安全? 如何将侦听器添加到右键单击-

  • 拦截文件 bp CreateFileA 创建或打开文件 (32位) bp OpenFile 打开文件 (32位) bp ReadFile 读文件 (32位) bp WriteFile 写文件 (32位) bp GetPrivateProfileStringA (ini文件)