/** * 插入音乐命令 * @file */ UE.plugin.register("music", function() { var me = this; function creatInsertStr(url, width, height, align, cssfloat, toEmbed) { return !toEmbed ? "' : ''; } return { outputRule: function(root) { utils.each(root.getNodesByTagName("img"), function(node) { var html; if (node.getAttr("class") == "edui-faked-music") { var cssfloat = node.getStyle("float"); var align = node.getAttr("align"); html = creatInsertStr( node.getAttr("_url"), node.getAttr("width"), node.getAttr("height"), align, cssfloat, true ); var embed = UE.uNode.createElement(html); node.parentNode.replaceChild(embed, node); } }); }, inputRule: function(root) { utils.each(root.getNodesByTagName("embed"), function(node) { if (node.getAttr("class") == "edui-faked-music") { var cssfloat = node.getStyle("float"); var align = node.getAttr("align"); html = creatInsertStr( node.getAttr("src"), node.getAttr("width"), node.getAttr("height"), align, cssfloat, false ); var img = UE.uNode.createElement(html); node.parentNode.replaceChild(img, node); } }); }, commands: { /** * 插入音乐 * @command music * @method execCommand * @param { Object } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址; * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none * @example * ```javascript * //editor是编辑器实例 * //在编辑器里插入一个“植物大战僵尸”的APP * editor.execCommand( 'music' , { * width: 400, * height: 95, * align: "center", * url: "音乐地址" * } ); * ``` */ music: { execCommand: function(cmd, musicObj) { var me = this, str = creatInsertStr( musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false ); me.execCommand("inserthtml", str); }, queryCommandState: function() { var me = this, img = me.selection.getRange().getClosedNode(), flag = img && img.className == "edui-faked-music"; return flag ? 1 : 0; } } } }; });