diff --git a/_src/plugins/snapscreen.js b/_src/plugins/snapscreen.js index 9dbebd4c6..81dda87e3 100644 --- a/_src/plugins/snapscreen.js +++ b/_src/plugins/snapscreen.js @@ -1,82 +1,94 @@ -///import core -///import plugins\inserthtml.js -///import plugins\image.js -///commandsName snapscreen -///commandsTitle 截屏 -/* - * 截屏插件 +/** + * 截屏插件,为UEditor提供插入支持 + * @file + * @since 1.4.0 */ -UE.plugins['snapscreen'] = function(){ - var me = this, - doc, - snapplugin; +UE.plugin.register('snapscreen', function (){ - me.setOpt({ - snapscreenServerPort: location.port //屏幕截图的server端端口 - ,snapscreenImgAlign: '' //截图的图片默认的排版方式 - ,snapscreenHost: location.hostname //屏幕截图的server端文件所在的网站地址或者ip,请不要加http:// + var me = this; + var snapplugin; + // 设置截屏配置项默认值 + me.setOpt({ + snapscreenServerPort: location.port, // 屏幕截图的server端端口 + snapscreenImgAlign: '', // 截图的图片默认的排版方式 + snapscreenHost: location.hostname // 屏幕截图的server端文件所在的网站地址或者ip,请不要加http:// }); - me.commands['snapscreen'] = { - execCommand: function(){ - var me = this,lang = me.getLang("snapScreen_plugin"); - if(!snapplugin){ - var container = me.container; - doc = container.ownerDocument || container.document; - snapplugin = doc.createElement("object"); - try{snapplugin.type = "application/x-pluginbaidusnap";}catch(e){ - return; - } - snapplugin.style.cssText = "position:absolute;left:-9999px;"; - snapplugin.setAttribute("width","0"); - snapplugin.setAttribute("height","0"); - container.appendChild(snapplugin); - } + function getLocation(url){ + var a = document.createElement('a'); - var editorOptions = me.options; + a.href = url; + return { + 'port': a.port, + 'hostname': a.hostname, + 'path': a.pathname + a.search + a.hash + } + } - var onSuccess = function(rs){ - try{ - rs = eval("("+ rs +")"); - }catch(e){ - alert(lang.callBackErrorMsg); - return; - } + return { + commands:{ + /** + * 字体背景颜色 + * @command snapscreen + * @method execCommand + * @param { String } cmd 命令字符串 + * @example + * ```javascript + * editor.execCommand('snapscreen'); + * ``` + */ + 'snapscreen':{ + execCommand:function (cmd) { + var url, local, res; + var me = this, + lang = me.getLang("snapScreen_plugin"); - if(rs.state != 'SUCCESS'){ - alert(rs.state); - return; - } - me.execCommand('insertimage', { - src: editorOptions.snapscreenUrlPrefix + rs.url, - floatStyle: editorOptions.snapscreenImgAlign, - _src:editorOptions.snapscreenUrlPrefix + rs.url - }); - }; - var onStartUpload = function(){ - //开始截图上传 - }; - var onError = function(){ - alert(lang.uploadErrorMsg); - }; + if(!snapplugin){ + var container = me.container; + var doc = me.container.ownerDocument || me.container.document; + snapplugin = doc.createElement("object"); + try{snapplugin.type = "application/x-pluginbaidusnap";}catch(e){ + return; + } + snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;"; + snapplugin.setAttribute("width","0"); + snapplugin.setAttribute("height","0"); + container.appendChild(snapplugin); + } - var port = editorOptions.snapscreenServerPort + '', - snapscreenServerUrl = me.getActionUrl(me.getOpt('snapscreenActionName')); - snapscreenServerUrl = snapscreenServerUrl.split( editorOptions.snapscreenHost ); - snapscreenServerUrl = snapscreenServerUrl[1] || snapscreenServerUrl[0]; - if( snapscreenServerUrl.indexOf(":"+port) === 0 ) { - snapscreenServerUrl = snapscreenServerUrl.substring( port.length+1 ); - } + function onSuccess(rs){ + try{ + rs = eval("("+ rs +")"); + if(rs.state == 'SUCCESS'){ + var opt = me.options; + me.execCommand('insertimage', { + src: opt.snapscreenUrlPrefix + rs.url, + _src: opt.snapscreenUrlPrefix + rs.url, + floatStyle: opt.snapscreenImgAlign + }); + } else { + alert(rs.state); + } + }catch(e){ + alert(lang.callBackErrorMsg); + } + } + + url = me.getActionUrl(me.getOpt('snapscreenActionName')); + local = getLocation(url); + setTimeout(function () { + try{ + res =snapplugin.saveSnapshot(local.hostname, '/ueditor/' + local.path, local.port); + }catch(e){ + me.ui._dialogs['snapscreenDialog'].open(); + return; + } - try{ - var ret =snapplugin.saveSnapshot(editorOptions.snapscreenHost, snapscreenServerUrl, port); - }catch(e){ - me.ui._dialogs['snapscreenDialog'].open(); - return; + onSuccess(res); + }, 50); + } } - onSuccess(ret); } - }; -} - + } +}); diff --git a/php/config.json b/php/config.json index 83d484c18..a4712bd4c 100755 --- a/php/config.json +++ b/php/config.json @@ -35,8 +35,6 @@ "snapscreenActionName": "uploadimage", //执行上传截图的action名称 "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{filename}_{time}{rand:6}", //上传保存路径,可以自定义保存路径和文件名格式 "snapscreenUrlPrefix": "", //图片访问路径前缀 - "snapscreenHost": "localhost", - "snapscreenServerPort": 80, "snapscreenInsertAlign": "none", // 抓取远程图片配置