///import core ///import plugins/inserthtml.js ///commands 音乐 ///commandsName Music ///commandsTitle 插入音乐 ///commandsDialog dialogs\music UE.plugins['music'] = function () { var me = this, div; /** * 创建插入音乐字符窜 * @param url 音乐地址 * @param width 音乐宽度 * @param height 音乐高度 * @param align 阴雨对齐 * @param toEmbed 是否以flash代替显示 * @param addParagraph 是否需要添加P标签 */ function creatInsertStr(url,width,height,align,toEmbed,addParagraph){ return !toEmbed ? (addParagraph? ('

'): '') + '' + (addParagraph?'

':'') : ''; } function switchImgAndEmbed(img2embed) { var tmpdiv, nodes = domUtils.getElementsByTagName(me.document, !img2embed ? "embed" : "img"); for (var i = 0, node; node = nodes[i++];) { if (node.className != "edui-faked-music") { continue; } tmpdiv = me.document.createElement("div"); //先看float在看align,浮动有的是时候是在float上定义的 var align = domUtils.getComputedStyle(node,'float'); align = align == 'none' ? (node.getAttribute('align') || '') : align; tmpdiv.innerHTML = creatInsertStr(img2embed ? node.getAttribute("_url") : node.getAttribute("src"), node.width, node.height, align, img2embed); node.parentNode.replaceChild(tmpdiv.firstChild, node); } } me.addListener("beforegetcontent", function () { switchImgAndEmbed(true); }); me.addListener('aftersetcontent', function () { switchImgAndEmbed(false); }); me.addListener('aftergetcontent', function (cmdName) { if (cmdName == 'aftergetcontent' && me.queryCommandState('source')) { return; } switchImgAndEmbed(false); }); me.commands["music"] = { execCommand:function (cmd, musicObj) { var me = this, str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false, true); 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; } }; };