kindeditor 扩充,粘贴图片时,将图片保存,支持 ie和firefox

本文介绍了一种KindEditor编辑器的扩展方法,该方法允许用户通过粘贴操作上传图片到服务器,并支持IE和Firefox浏览器。文章提供了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

www.MyException.Cn   发布于:2012-11-10 10:48:50   浏览:22次
kindeditor 扩展,粘贴图片时,将图片保存,支持 ie和firefox

kindeditor 扩展,粘贴图片时,将图片保存,支持 ie和firefox
<script type="text/javascript">
        KE.show({
            id : 'content',
            cssPath : 'kindeditor/index.css',
            resizeMode:'0',
            imageUploadJson:'<%=basePath%>imageUploadServlet',
            fileManagerJson:'<%=basePath%>imageUploadServlet',
            afterCreate : function(id) {
                /* 响应 ctrl + v ,保存图片
                KE.event.ctrl(document, 86, function() {
                    KE.util.setData(id);
                });
                KE.event.ctrl(KE.g[id].iframeDoc, 86, function() {
                    KE.util.setData(id);
                    var doc = KE.g[id].iframeDoc;
                    setTimeout(dealdoc(doc),100);
                });
                */
                //ie 中粘贴 --- 包括 toolbar 中 的粘贴和右键浏览器菜单中的粘贴
                KE.g[id].iframeDoc.body.onpaste = function (){
                    var doc = KE.g[id].iframeDoc;
                    setTimeout(dealdoc(doc),100);
                };
                //firefox  粘贴 --- 包括 ctrl+v 和右键浏览器菜单中的粘贴
                $(KE.g[id].iframeDoc).bind('paste', null, function() {
                       var doc = KE.g[id].iframeDoc;
                    setTimeout(dealdoc(doc),100);
                });
           }
        });
       
    //屏蔽主页面中的右键菜单
        document.oncontextmenu = function (){
            return false;
        }
        //返回 一个无参的方法,用于setTimeout
        function dealdoc(doc){
            return function(){
                deal(doc);
            }
        };

 

//粘贴时处理图片 - - 方法一:异步,只能接受一张图片
        function deal(doc){
            var links = doc.getElementsByTagName("img");
            for(var i=0;i<links.length;i++){
                var lin = $(links[i]);
                if($(lin).attr("add_src")){
                           
                }else{
                    //links[i].src = "<c:url value='/saveImageServlet?

imageurl='/>"+links[i].src;
                    var imgurl = $(lin).attr("src");
                    $.ajax({
                          type: "POST",
                         url: "<c:url value='/saveImageServlet'/>",
                         data: "imageurl="+imgurl,
                         dataType:"html" ,    
                         success:function(org){
                             $(lin).attr("src","");
                             $(lin).attr("src",org);
                            $(lin).attr("add_src","1");
                         }
                    });
                   
                }
            }
        }

 

 


        //粘贴时处理图片-- 方法二:同步,可以接受多张图片
        function deal(doc){
            var links = doc.getElementsByTagName("img");
            for(var i=0;i<links.length;i++){
                var lin = $(links[i]);
                if($(lin).attr("add_src")){
                           
                }else{
                    //links[i].src = "<c:url value='/saveImageServlet?

imageurl='/>"+links[i].src;
                    var imgurl = $(lin).attr("src");
                    var html = $.ajax({
                          type: "POST",
                         url: "<c:url value='/saveImageServlet'/>",
                         data: "imageurl="+imgurl,
                         dataType:"html" ,
                         async: false    
                         
                    }).responseText;
                    $(lin).attr("src","");
                    $(lin).attr("src",html);
                    $(lin).attr("add_src","1");
                   
                }
            }
        }
    </script>

 

参考 :http://zh-cn.w3support.net/index.php?db=so&id=441631

http://blog.youkuaiyun.com/nsrainbow/archive/2008/05/03/2370329.aspx

http://www.oschina.org/code/snippet_12_3291

 

 

### 解决KindEditor编辑器中复制粘贴图片功能限制的方法 为了使KindEditor能够处理通过复制粘贴操作传入的图片,需要集成特定的功能模块来捕获这些像数据,将其上传至服务器。具体实现方式如下: #### 集成WordPaster插件以增强图片粘贴能力 对于希望支持来自Microsoft Word文档内嵌图片以及其他来源(如剪贴板中的截)的情况,可以采用`WordPaster For KindEditor-4.x`这一解决方案[^2]。 在HTML页面头部加入必要的JavaScript库之前,请确认当前网页环境中尚未加载过jQuery版本冲突的风险;因为该工具依赖于jQuery框架运作,而较新版本可能与旧版存在兼容性差异。因此建议仅当确实缺少此脚本时才予以补充。 ```html <!-- 假设未引入JQuery --> <script src="path/to/jquery.min.js"></script> ``` 接着定义用于承载WordPaster界面元素的DOM节点: ```html <div id="wdpst"></div> ``` 随后初始化WordPaster实例,指定其渲染位置以及关联的目标容器ID属性值为先前创建好的DIV标签: ```javascript <script type="text/javascript"> WordPaster.getInstance({ ui: { render: "wdpst" } // 目标容器,通常是一个div元素 }); </script> ``` 上述设置允许用户直接将含有形对象的内容片段从外部应用程序拷贝过来后,在可视化区域内正常展示出来的同时触发后台逻辑完成资源存储流程。 #### 自动化图片上传机制的设计思路 为了让整个过程更加流畅无缝隙,还需进一步定制服务端接口以便接收客户端发起的数据流请求将之妥善保存起来。这一步骤涉及到了跨域资源共享(CORS)策略调整、MIME类型验证等多个方面考量因素[^1]。 一旦成功获取到远程路径,则可通过修改原始富文本字符串的方式插入对应的IMG标记从而达到预期效果。例如: ```python def handle_image_upload(image_data): """模拟处理上传图片函数""" # 图片保存逻辑... return "/uploads/image.png" image_url = handle_image_upload(pasted_image_binary) img_tag = f'<img src="{image_url}" alt="pasted image">' editor_content += img_tag ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值