| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- ///import core
- ///import plugins/inserthtml.js
- ///commands 视频
- ///commandsName InsertVideo
- ///commandsTitle 插入视频
- ///commandsDialog dialogs\video\video.html
- UE.plugins['video'] = function (){
- var me =this,
- div;
- /**
- * 创建插入视频字符窜
- * @param url 视频地址
- * @param width 视频宽度
- * @param height 视频高度
- * @param align 视频对齐
- * @param toEmbed 是否以图片代替显示
- * @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-video"' +
- ' src="'+me.options.UEDITOR_HOME_URL+'themes/default/images/spacer.gif" style="background:url('+me.options.UEDITOR_HOME_URL+'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;" />' +
- (addParagraph?'</p>':'')
- :
- '<embed type="application/x-shockwave-flash" class="edui-faked-video" 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-video")continue;
- tmpdiv = me.document.createElement("div");
- //先看float在看align,浮动有的是时候是在float上定义的
- var align = node.style.cssFloat;
- tmpdiv.innerHTML = creatInsertStr(img2embed ? node.getAttribute("_url"):node.getAttribute("src"),node.width,node.height,align || node.getAttribute("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["insertvideo"] = {
- execCommand: function (cmd, videoObjs){
- videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];
- var html = [];
- for(var i=0,vi,len = videoObjs.length;i<len;i++){
- vi = videoObjs[i];
- html.push(creatInsertStr( vi.url, vi.width || 420, vi.height || 280, vi.align||"none",false,true));
- }
- me.execCommand("inserthtml",html.join(""));
- },
- queryCommandState : function(){
- var img = me.selection.getRange().getClosedNode(),
- flag = img && (img.className == "edui-faked-video");
- return this.highlight ? -1 :(flag?1:0);
- }
- }
- };
|