clipboardData对象是为通过编辑菜单、快捷菜单和快捷键执行的编辑操作所保留的。
该对象使用系统剪贴板传送信息并保留至下一个编辑操作冲掉它。数据传送的格式特别适合于多次粘贴相同的数据。
此对象在 Microsoft®Internet Explorer 5 的脚本中可用。
之前公司需求要做一个聊天的webim程序,且支持从qq截图工具等直接截屏的图片复制到页面中,于是经过前端的调试和一些百度文档找到了clipboardData,实现了截屏粘贴到页面的功能。
JS代码如下:
//在需要调用的地方使用paste1()函数,例如打开聊天窗口时调用。
function paste1() {
(function () {
var imgReader = function (item) {
var blob = item.getAsFile(),
reader = new FileReader();
var img = new Image();
reader.onload = function (e) {
img.src = e.target.result;
document.getElementsByClassName('textarea-div')[0].appendChild(img);
var obj = document.getElementsByClassName('textarea-div')[0];
po_Last_Div(obj);
document.designMode = "off";
document.execCommand('enableObjectResizing', false, 'false');
};
reader.readAsDataURL(blob);
//img.setAttribute('alt','');
};
function addEvent(obj, sEv, fn) {
if (obj.addEventListener) {
obj.addEventListener(sEv, fn, false);
} else {
obj.attachEvent('on' + sEv, fn);
}
}
addEvent(document.getElementsByClassName('textarea-div')[0], 'paste', function (e) {
var clipboardData = e.clipboardData,
i = 0,
items, item, types;
if (clipboardData) {
items = clipboardData.items;
if (!items) {
return;
}
item = items[0];
types = clipboardData.types || [];
for (; i < types.length; i++) {
if (types[i] === 'Files') {
item = items[i];
break;
}
}
if (item && item.kind === 'file' && item.type.match(/^image\//i)) {
var explorer = navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
imgReader(item);
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
imgReader(item);
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
imgReader(item);
}
//Safari
else if (explorer.indexOf("Safari") >= 0 && explorer.indexOf("Chrome") == -1) {
imgReader(item);
}
}
}
});
})();
}
//解决safari浏览器 发送消息后停留在输入框的问题 enter
function po_Last_Div(obj) {
if (window.getSelection) {//ie11 10 9 ff safari
obj.focus(); //解决ff不获取焦点无法定位问题
var range = window.getSelection();//创建range
range.selectAllChildren(obj);//range 选择obj下所有子内容
range.collapseToEnd();//光标移至最后
}
else if (document.selection) {//ie10 9 8 7 6 5
var range = document.selection.createRange();//创建选择对象
//var range = document.body.createTextRange();
range.moveToElementText(obj);//range定位到obj
range.collapse(false);//光标移至最后
range.select();
}
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。