项目中如果想支持粘贴截图上传图片,或者粘贴截图显示到某个位置,可以用这段代码,支持IE11,chrome。
注意粘贴图片不支持mac os 中的safari,safari会弹窗提示:Oops: You are trying to paste an image in Safari, however we are unable to retieve its data. 不让粘贴图片。
2016-12-01 备注:发现在windows 7中安装了firefox新版测试,这段代码无法运行,所以,请看附件代码,利用paste.js支持图片粘贴,那个可以做到在IE11,chrome,firefox中运行!
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试</title> <style type="text/css"> #editor {width: 500px;height:300px; border: 1px solid black;cursor:text;} </style> </head> <body> <div id="editor" contentEditable="true">这里填写内容!</div> <script src="index.js"></script> </body> </html>
document.querySelector('#editor').onpaste = function(e) { //判断是否是粘贴图片 if (e.clipboardData && e.clipboardData.items && e.clipboardData.items[0].type.indexOf('image') > -1) { var that = this, reader = new FileReader(), file = e.clipboardData.items[0].getAsFile(); reader.onload = function(e) { // this.result得到图片的base64 (可以用作即时显示) var img = '<img src="' + this.result + '" alt=""/>'; insertAtCursor(that, img); } reader.readAsDataURL(file); } }; function insertAtCursor(dom, html) { if (dom != document.activeElement) { // 如果dom没有获取到焦点,追加 dom.innerHTML = dom.innerHTML + html; return; } var sel, range; if (window.getSelection) { // IE9 或 非IE浏览器 sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); // Range.createContextualFragment() would be useful here but is // non-standard and not supported in all browsers (IE9, for one) var el = document.createElement("div"); el.innerHTML = html; var frag = document.createDocumentFragment(), node, lastNode; while ((node = el.firstChild)) { lastNode = frag.appendChild(node); } range.insertNode(frag); // Preserve the selection if (lastNode) { range = range.cloneRange(); range.setStartAfter(lastNode); range.collapse(true); sel.removeAllRanges(); sel.addRange(range); } } } else if (document.selection && document.selection.type != "Control") { // IE < 9 document.selection.createRange().pasteHTML(html); } }
js中用到了在DIV中的光标位置插入内容的函数:insertAtCursor。
jquery.js请自行补充。
因为上述代码在新版的firefox中无法支持,所以请看附件代码,利用paste.js支持粘贴图片。
paste.js项目地址:https://github.com/layerssss/paste.js
相关推荐
我们或多或少都使用过各式各样的富文本编辑器,其中有一个很方便功能,复制一张图片然后粘贴进文本框,这张图片就被上传了,那么这个方便的功能是如何实现的呢? 原理分析 提取操作:复制=>粘贴=>上传 在这个操作...
标题和描述都提到了“浏览IE缓存图片,并保存图片”...不过,现代浏览器如Chrome、Firefox等也有类似的缓存机制,操作方式大同小异。对于高级用户,还可以使用开发者工具查看和分析网络请求,其中包括缓存的图片信息。
KindEditor设计时考虑了跨浏览器兼容性,支持主流的浏览器如Chrome、Firefox、Safari、IE等。同时,它也可以在不同操作系统和设备上运行,适应移动互联网的发展。 总的来说,KindEditor文本编辑器实例提供了丰富的...
在浏览器支持方面,ImgUploadJS插件目前支持主流的浏览器,包括但不限于IE11、Chrome、Firefox,以及理论上支持的Safari。随着技术的发展和浏览器的更新,未来可能会支持更多的浏览器。 插件的使用简单方便,提供了...
5. **跨平台兼容**:能在多种浏览器和操作系统上运行,包括IE、Firefox、Chrome、Safari和Opera。 **KCFinder** KCFinder是一款轻量级的文件管理器,特别设计用于与CKEditor等富文本编辑器配合使用。它提供了一个...
Ueditor支持图片上传功能,用户可以选择“图片”按钮,然后从本地选择或直接粘贴图片到弹出的对话框中,图片会被自动上传并插入到编辑器中。 4. **注意兼容性**:不同的浏览器对粘贴操作的处理可能有所不同,因此在...
3. **兼容性广泛**:作为一个基于纯JavaScript的库,它与主流的浏览器(如Chrome、Firefox、Safari、Edge和IE9+)兼容,无需依赖任何特定的JavaScript框架或库。 4. **易用性**:其API简洁明了,使得开发者可以快速...
在代码生成方面,WowSlider会自动生成HTML、CSS和JavaScript代码,这些代码兼容大部分现代浏览器,包括Chrome、Firefox、Safari、Edge以及IE9及以上版本。用户只需将生成的代码复制粘贴到网页源代码中,即可在网站上...
目前仅有高版本的 Chrome 浏览器支持这样直接粘贴,其他浏览器目前为止还无法粘贴,不过火狐和ie11浏览器在可编辑的div中能够粘贴截图的图片也是base64位和Chrome利用clipboardData的效果是一样的,只是在火狐和ie11...
另外,对于图片,由于ActiveXObject方式不支持直接插入图片,所以通常需要先将图片转换为Base64编码,然后在Word文档中插入一个包含Base64编码的`<img>`标签,用户在打开Word文档时,Word会自动解析并显示图片。...
如果上述方法无效,或者你使用的是其他浏览器,例如Chrome、Firefox或Safari,那么可以尝试以下通用方法: 1. 使用开发者工具:大多数现代浏览器都内置了开发者工具,你可以通过F12(Windows)或Cmd+Opt+I(Mac)...
在现代浏览器中,如Chrome、Firefox等,已经提供了较为统一的复制到剪切板的API,但在兼容性问题上,特别是较早的IE(Internet Explorer)浏览器,我们需要使用特殊的方法来实现这一功能。 ### 知识点二:兼容IE与...
pasteimg是一款可以在浏览器中实现图片粘贴的jQuery插件,兼容Chrome、Firefox、IE11以及其他使用这些内核的浏览器,比如,国内著名的360浏览器。 pasteimg可以识别浏览器中直接复制的图片,也可以识别复制的富...
2. 支持html5,兼容全部主流浏览器,包括firefox, chrome, IE, 搜狗, 360等。(兼容手机浏览器UC等) 3. 多种主流数据库支持,一套程序多种数据库间任意切换,支持 sql server. oracle. access. mysql。 4. 新增...
这款编辑器具有良好的浏览器兼容性,支持IE、Firefox、Chrome、Safari、Opera等主流浏览器,确保了用户在不同设备和操作系统上的使用体验。同时,由于其基于Web的特性,它可以在Windows、Linux、Mac等多种平台上...
5. **跨浏览器兼容**:zTree经过优化,能够在主流的浏览器如Chrome、Firefox、Safari、IE等上运行良好,确保了良好的跨平台兼容性。 6. **皮肤可定制**:通过CSS样式,开发者可以轻松地更改zTree的外观,适应不同的...
基于jQuery编写的一个侧边特效,在网页的右侧自动生成可扫描的二维码图片,二维码内容为对应网页网址链接,同时带有返回顶部按钮。... 2、适用浏览器:IE8、360、FireFox、Chrome、Opera、傲游、搜狗、世界之窗.