分享js贴纸屏幕截图到网页插件屏幕粘贴
在许多场合,我们可能需要提供一个屏幕截图上传到系统作为凭证。这种传统的操作方式:屏幕截图,保存文件到本地,选择网页上的本地文件和上传,至少三个步骤是需要在这里。可以贴上直接截图网页上传答案是:是的,这是本文的内容。因为我有需求的项目上传截图,为了更好的用户体验,减少了操作步骤,我在网上找到了,找到了一些前景。为了便于重用和共享,我做了一些封装的函数,所以我有插件screenshot-paste.the运行效果如下:
插件调用示例:
截图粘贴示例
$(#演示)。ScreenshotPaste({
ImgContainer:# imgpreview
});
插件依赖:
从调用示例中,我们可以看到插件依赖于以下内容:
1)需要参考jQuery
2)插件本身screenshot-paste.js
3)需要一个文本框和图片预览的div
插入可配置的项目:
var选项{ {
ImgContainer:# imgpreview, / /集装箱图像预览
imgheight:200 / /预览的默认高度
};
插件方法:
该插件目前只有一个方法,getimgdata,即如下:
imgdata = $(var的#演示)。ScreenshotPaste('getimgdata);
值得一提的是,该方法返回IMG,src属性是内容,图片的数据通过base64编码的内容。
在上传数据到服务器,你需要解码base64解码示例代码如下(C #版):
uploadimage字符串(字符串数据)
{
数据=数据。删除(0,imagedata.indexof(' ')+ 1); / / Base64编码的数据串的截图
VaR字节= convert.frombase64string(数据); / / Base64解码
var url = bllorderimg.uploadimg(字节); / /以下几行代码和内容可以忽略
返回的URL;
}
插入源代码:
(函数($){)
美元。FN。screenshotpaste =功能(选项){
我=这个;
如果(typeof选项= = 'String'){
VaR方法=美元。FN。screenshotpaste方法{选项};
如果(方法){
返回方法();
{人}
返回;
}
}
var默认值= {
ImgContainer:, / /图像预览容器
imgheight:200 / /预览的默认高度
};
选项=扩展(默认值,选项);
无功imgreader =功能(项目){
var文件= item.getasfile();
VaR的读者= FileReader();
reader.readasdataurl(文件);
reader.onload =功能(e){
VaR img =新的图像();
img.src = e.target.result;
$(IMG)。Css({身高:选项。imgheight });
$(document)。找到(选项。imgcontainer)
html()
显示()
附加(IMG);
};
};
事件注册
$(我),('paste功能(e){ {)
无功clipboarddata = e.originalevent.clipboarddata;
var项、项、类型;
如果(clipboarddata){
项目= clipboarddata.items;
如果(!项目){
返回;
}
项目=项目{ 0 };
类型= clipboarddata.types | | { };
对于(var i = 0;i < types.length;i++){
如果(类型{我} = 'files){
项目=项目{ };
打破;
}
}
如果(项目item.kind = 'file' item.type.match( / ^图像 / /我)){
ImgReader(项);
}
}
});
fn.screenshotpaste.methods = { {美元。
getimgdata:函数(){
VaR src= $(document)。找到(选项。imgcontainer)。发现('img)。Attr('src);
如果(SRC = = undefined){
SRC =;
}
返回SRC;
}
};
};
}(jQuery);
以上是本文的全部内容,希望能对大家有所帮助。