介绍
当你的复制对象是一个图片或者剪切板中存在图片,使用 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超高配版(银色)
@水木易安,咋不搞成单独的插件啊,这样就可以直接新建插件了
@穴儿,单独插件:
导入网页插件:未命名(当前用户:0,总安装次数:0)红米Note4超高配版(银色)
大佬大佬,牛掰牛掰!!!方便多了!
红米Note7 高配版(黑色)
@无道,能用就行 改来改了好几次 我还一直以为我哪里贴错了
红米Note4超高配版(银色)
健健康康
很好很强大
@000,



看到“只限PC”,不过我发现我的iOS的Safari也是支持粘贴上传的
红米Note4超高配版(银色)
@老虎会游泳,
insertText
是每个页面都会有的函数是吧?红米Note4超高配版(银色)
@水木易安,不是,内信私聊就没 所以我修改你的插件判断有没这个函数
@水木易安,本来不是,但是因为
insertText
被我定义在了你的插件代码里,所以现在是了