123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- ///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? ('<p '+ (align !="none" ? ( align == "center"? ' style="text-align:center;" ':' style="float:"'+ align ) : '') + '>'): '') +
- '<img align="'+align+'" width="'+ width +'" height="' + height + '" _url="'+url+'" class="edui-faked-music"' +
- ' src="'+me.options.langPath+me.options.lang+'/images/music.png" />' +
- (addParagraph?'</p>':'')
- :
- '<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
- ' src="' + url + '" width="' + width + '" height="' + height + '" align="' + align + '"' +
- ( align !="none" ? ' style= "'+ ( align == "center"? "display:block;":" float: "+ align ) + '"' :'' ) +
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';
- }
- 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;
- }
- };
- };
|