js 实现复制粘贴文本过滤(保留文字和图片)

实现复制粘贴文本过滤(保留文字和图片)

demo如下:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
  <base href=""/>
  <style type="text/css">
  </style>
 </head>
 <body>
    <div id="conversation-content" contenteditable="true" style="width:500px;height:300px;background:#f00;">

    </div>
 </body>
</html>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
    function filterHtml(str,callback){
    var s = ‘‘;
    var imgWidth = 200;
    var d = str.replace(/(&nbsp;)/ig,‘‘);//先过滤空格
    var sd = d.replace(/<br([^<>]+|\s?)>/ig,‘||||‘);//替换br标签
    var div = document.createElement(‘div‘);
    div.id = ‘cache_Id‘;
    div.style.display = ‘none‘;
    div.innerHTML = sd;
    document.body.appendChild(div);
    var dssD = document.getElementById(‘cache_Id‘);
    var text = dssD.innerText;//过滤html标签
    text = text.replace(/\|\|\|\|/g,‘<br>‘);//还原br
    var imagesCount = 0;
    try{
        var temp = ‘‘;
        var img = dssD.getElementsByTagName(‘img‘);
        if(img.length > 0){
            for(var i=0;i<img.length;i++){
                var imgObj = new Image();
                imgObj.onload = function(){
                    imagesCount++;
                    var w = this.width;
                    var h = this.height;
                    if(w > imgWidth){
                        temp += ‘<img src="‘+ this.src +‘" width="‘+ imgWidth +‘" /><br>‘;
                    }else{
                        temp += ‘<img src="‘+ this.src +‘" width="‘+ w +‘" /><br>‘;
                    }
                    if(imagesCount == img.length){
                        text+=temp;
                        s = text;
                        var n = document.getElementById(‘cache_Id‘);
                        if(n && n.parentNode && n.tagName != ‘BODY‘){
                            n.parentNode.removeChild(n);
                        }
                        if(callback){
                            callback(s);
                        }
                    }
                }
                imgObj.onerror = onabort = function(){
                    console.log(imagesCount);
                    imagesCount++;
                     if(imagesCount == img.length){
                        s = text;
                        var n = document.getElementById(‘cache_Id‘);
                        if(n && n.parentNode && n.tagName != ‘BODY‘){
                            n.parentNode.removeChild(n);
                        }
                        if(callback){
                            callback(s);
                        }
                    }
                }
                imgObj.src = img[i].src;
            }
        }else{
             s = text;
            var n = document.getElementById(‘cache_Id‘);
            if(n && n.parentNode && n.tagName != ‘BODY‘){
                n.parentNode.removeChild(n);
            }
            if(callback){
                callback(s);
            }
        }
    }catch(e){
       console.log(e);
    }
}
$(‘#conversation-content‘)[0].onpaste = function(){
    console.log(1);
    setTimeout(function(){
         filterHtml($(‘#conversation-content‘).html(),function(str){
            $(‘#conversation-content‘).html(str);
        });
    },300);
}
</script>
时间: 2024-08-28 00:42:24

js 实现复制粘贴文本过滤(保留文字和图片)的相关文章

[JavaScript] 怎么使用JS禁止复制粘贴

1. 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body> 禁止选取.防止复制 3. 禁止粘贴 4. 禁止复制和剪切5. <input style="ime-mode:disabled"> 关闭输入法 [

通过如何通过js实现复制粘贴功能

在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中复制粘贴的功能,demo如下! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>clipboard</title> <SCRIPT language=JavaS

ueditor编辑文章时候,复制粘贴内容,原来的图片不能显示

ueditor编辑文章时候.当现有文章有图片的时候, 再复制粘贴文本进去的时候.里面的图片就不能显示了, 编辑器查看文章Html代码,图片路径显示为:src="http://localhost/images/net/error!" 正确是:src="http://localhost/images/adc.jpg" 而我用的是自己定义的server的一个路径 查看源代码,发现这块功能是例如以下流程 当粘贴后.UE会将眼下编辑的全部内容中元素又一次赋值属性,即源代码中的

js 禁止复制粘贴

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false&qu

js 实现复制粘贴功能

<!DOCTYPE html> <!-- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> --> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8

js 实现复制粘贴

<!DOCTYPE html> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>点击复制内容移动端全兼容(专治各种移动端浏览器)</title> <style> *{ margin:0; padding:0; } body{ background: #fff

js禁止复制粘贴

<input type="text" id="username" name="username" value="zzsky"    onpaste="return false" oncontextmenu="return false"   oncopy="return false" oncut="return false"> 密码<

使用JS实现复制粘贴功能

如果嵌套太多使用这个: // 複製單號1 // 第一步把這個放到頁面 // <div style="position:absolute; opacity: 0;" id="copy1"></div> // 第二步增加按鈕設置點擊事件 // 第三如下: copyNo() { const a = document.createElement('textarea') let b; if (this.myshow) { a.innerText = t

jweixin-1.1.0.js微信接口“分享给朋友”文字和图片配置

在npm官网找到了:微信官方 js-sdk CommonJS 版https://www.npmjs.com/package/weixin-js-sdk 步骤一:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js备注:支持使用 AMD/CMD 标准模块加载方法加载步骤二:通过config接口注入权限验证配置所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅