标题: [精][网页插件] 自动上传剪切板中的图片[精简修复版]
时间: 2020-01-19发布,2022-06-17修改
介绍
当你的复制对象是一个图片或者剪切板中存在图片,使用 ctrl
v
或者鼠标右键粘贴,即可直接上传剪切板中的图片数据到服务器(免去了点击"添加附件"的过程) .( 另安利一个截图工具:https://zh.snipaste.com/ )
导入网页插件:自动上传剪切板中的图片(当前用户:0,总安装次数:0)源码
<script>
function insertText(obj, str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
document.addEventListener('paste', function (event) {
var clipboardData = (event.clipboardData || event.originalEvent.clipboardData);
var items = clipboardData.items;
var fd = new FormData();
var file = false;
for (var i=0; i<clipboardData.items.length; i++) {
var item = clipboardData.items[i];
if (item.kind === 'file') {
var file = item.getAsFile();
if (file) {
Toast('检测到粘贴图片操作,正在上传...');
break;
}
}
}
if (file) {
fd.append('file', file);
$.ajax({
type: 'POST',
url: '/q.php/bbs.upload.json',
data: fd,
processData: false,
contentType: false
}).done(function (ret) {
console.debug(ret)
if (ret.content) {
insertText(document.getElementById("content"), ret.content);
} else {
Toast("粘贴失败,请稍后再试\n"+JSON.stringify(ret))
}
});
}
})
function Toast(msg, duration) {
console.log(msg)
// 如果不需要提示框,请删除下面的代码
duration = isNaN(duration) ? 2000 : duration;
var m = document.createElement('div');
m.innerHTML = msg;
m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;min-height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";
document.body.appendChild(m);
setTimeout(function () {
var d = 0.5;
m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
m.style.opacity = '0';
setTimeout(function () {
document.body.removeChild(m)
}, d * 1000);
}, duration);
// 如果不需要提示框,请删除上面的代码
}
</script>
红米Note4超高配版(银色)
『回复列表(16|隐藏机器人聊天)』
<script>//精简版
function insertText(obj, str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
document.addEventListener('paste', function (event) {
var clipboardData = (event.clipboardData || event.originalEvent.clipboardData);
var items = clipboardData.items;
var fd = new FormData();
if (items.length === 1 && items[0].kind === 'file') {
Toast('检测到粘贴截图操作,正在上传...')
var file = items[0].getAsFile();
fd.append('file', file);
$.ajax({
type: 'POST',
url: '/q.php/bbs.upload.json',
data: fd,
processData: false,
contentType: false
}).done(function (ret) {
console.debug(ret)
if (ret.content) {
hu60_insert_text(document.getElementById("content"), ret.content);
} else {
Toast("粘贴失败,请稍后再试\n"+JSON.stringify(ret))
}
});
}
})
function Toast(msg, duration) {
console.log(msg,duration)
}
</script>
红米Note4超高配版(银色)