File: /www/wwwroot/bs.kntsleep.com/system/extend/ueditor/_src/plugins/snapscreen.js
/**
* 截屏插件,为UEditor提供插入支持
* @file
* @since 1.4.2
*/
UE.plugin.register("snapscreen", function() {
var me = this;
var snapplugin;
function getLocation(url) {
var search,
a = document.createElement("a"),
params = utils.serializeParam(me.queryCommandValue("serverparam")) || "";
a.href = url;
if (browser.ie) {
a.href = a.href;
}
search = a.search;
if (params) {
search = search + (search.indexOf("?") == -1 ? "?" : "&") + params;
search = search.replace(/[&]+/gi, "&");
}
return {
port: a.port,
hostname: a.hostname,
path: a.pathname + search || +a.hash
};
}
return {
commands: {
/**
* 字体背景颜色
* @command snapscreen
* @method execCommand
* @param { String } cmd 命令字符串
* @example
* ```javascript
* editor.execCommand('snapscreen');
* ```
*/
snapscreen: {
execCommand: function(cmd) {
var url, local, res;
var lang = me.getLang("snapScreen_plugin");
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);
}
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,
alt: rs.title || "",
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,
local.path,
local.port
);
} catch (e) {
me.ui._dialogs["snapscreenDialog"].open();
return;
}
onSuccess(res);
}, 50);
},
queryCommandState: function() {
return navigator.userAgent.indexOf("Windows", 0) != -1 ? 0 : -1;
}
}
}
};
});