一、IE能够触发onbeforepaste事件,因此可以在该事件中直接改变剪贴板中的内容实现过滤效果

  二、谷歌由于不能触发onbeforepaste,先阻止默认行为,通过window.getSelection()获取光标位置,在该位置替换上处理完成的字符

具体实现代码:

 // 输入框绑定事件
function addPasteEvent (ele) {
var isIE = isIE();
// 只有IE支持beforepaste
if (isIE) {
ele.addEventListener('beforepaste', function () {
if(window.clipboardData){
var txt = window.clipboardData.getData("text");
if(txt != "" && txt != null){
window.clipboardData.setData('text',val);
}
}
})
} else {
// 绑定粘贴事件
   ele.addEventListener('paste', function () {
   if (e.originalEvent.clipboardData) {
// 阻止默认行为
e.preventDefault();
var clipboardData = e.originalEvent.clipboardData;
// 获取剪贴板的文本
var text = clipboardData.getData('text');
if (window.getSelection && text !== '' && text !== null) {
// 创建文本节点
var textNode = document.createTextNode(text);
// 在当前的光标处插入文本节点
var range = window.getSelection().getRangeAt(0);
// 删除选中文本
range.deleteContents();
// 插入文本
range.insertNode(textNode);
}
    }
   });
}
}
function isIE() {
if (!!window.ActiveXObject || 'ActiveXObject' in window) {
return true;
} else {
return false;
}
}

备注:(谷歌粘贴图片可以使用getAsFile() 获取到图片然后上传)

(js)粘贴时去掉HTML格式的更多相关文章

  1. 在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all

    在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all 前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, ...

  2. c# 处理js序列化时 datetime返回UTC格式的问题

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...

  3. 解决vim粘贴时格式混乱的问题

    vim 粘贴时格式混乱的问题,是由于缩进导致的. --------------------------------------------------------------- 原文: http:// ...

  4. Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总

    使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...

  5. Eclipse编辑jsp、js文件时卡死现象的解决办法汇总

    使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...

  6. JS时间处理由CST格式转成GMT格式时间

    问题描述:js接收java后台的时间数据时,时间格式的CST时间,而js默认的是GMT时间格式,js 需要对这个时间进行处理才能使用,具体处理方法如function dateToGMT(sDate){ ...

  7. webstorm创建js文件时自动生成js注释

    设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...

  8. 防止vi粘贴时自动添加缩进的方法

    使用Xshell连接Linux服务器,使用vi打开文件进行粘贴时,会自动在行首添加很多空格,导致格式错乱.可以用如下方法剞劂 在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而 ...

  9. js粘贴图片并显示

    var fromDa; $(function(){ document.getElementById('app').addEventListener('paste', function(e) { if( ...

随机推荐

  1. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_4 mybatis中使用unpooled配置连接池的原理分析

    把之前的CRUD的代码src下的代码都复制过来 依赖项也都复制过来, 配置文件 整理一番 执行findAll方法的测试 查看日志的输出部分 修改程序池 再来执行findAll方法 Plooled从连接 ...

  2. pyinstaller-python->exe

    pip install pyinstaller. pyinstaller -F /home/base64_decode.py https://www.imooc.com/article/26772 h ...

  3. tuple用法

    1 tuple中的元素可以直接赋给相同个数的变量 tup1 = ('asfa',234) p, q = tup1 print(p) print(q) # asfa # 参考:https://www.r ...

  4. Jedis源码浅析

    1.概述 Jedis是redis官网推荐的redis java client,代码维护在github https://github.com/xetorthio/jedis. 本质上Jedis帮我们封装 ...

  5. C# 获取当前网页HTML

    //引用COM组件 //Microsoft HTML Object Library //Microsoft Internet Controls SHDocVw.ShellWindows shellWi ...

  6. PHP 数组函数 内部指针

    current( &$arr ) 每个数组的当前单元,初始值的 数组的第一个单元next ( &$arr ) 返回数组中的下一个单元 , 如果没值则返回falshprev ( & ...

  7. hibernate 2 一对多、多对一 双向映射

    多对一或一对多中,在多的一方维护关系效率高 一:java实体类 1.Classes.java package cn.gs.ly.school.entity; import java.util.Set; ...

  8. 【VS开发】C++调用外部程序

    关于三个SDK函数:WinExec, ShellExecute,CreateProcess的其他注意事项:[1]定义头文件必须定义以下两个头文件: [cpp] view plain copy #inc ...

  9. Git 创建分支并合并主分支

    首先,我们创建dev分支,然后切换到dev分支: $ git checkout -b dev(等价于 $ git branch dev $ git checkout dev ) Switched to ...

  10. 使用itchat完成微信自动回复

    import itchat from itchat.content import * # 微信自动回复 @itchat.msg_register([TEXT]) def text_reply(msg) ...