123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /**
- * 截屏插件,为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;
- }
- }
- }
- };
- });
|