12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * 插入音乐命令
- * @file
- */
- UE.plugin.register('music', function (){
- var me = this;
- function creatInsertStr(url,width,height,align,cssfloat,toEmbed){
- return !toEmbed ?
- '<img ' +
- (align && !cssfloat? 'align="' + align + '"' : '') +
- (cssfloat ? 'style="float:' + cssfloat + '"' : '') +
- ' width="'+ width +'" height="' + height + '" _url="'+url+'" class="edui-faked-music"' +
- ' src="'+me.options.langPath+me.options.lang+'/images/music.png" />'
- :
- '<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
- ' src="' + url + '" width="' + width + '" height="' + height + '" '+ (align && !cssfloat? 'align="' + align + '"' : '') +
- (cssfloat ? 'style="float:' + cssfloat + '"' : '') +
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';
- }
- 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;
- }
- }
- }
- }
- });
|