/**
* 百度应用
* @file
* @since 1.2.6.1
*/
/**
* 插入百度应用
* @command webapp
* @method execCommand
* @remind 需要百度APPKey
* @remind 百度应用主页: http://app.baidu.com/
* @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度,
* height=>应用容器高度,logo=>应用logo,url=>应用地址
* @example
* ```javascript
* //editor是编辑器实例
* //在编辑器里插入一个“植物大战僵尸”的APP
* editor.execCommand( 'webapp' , {
* title: '植物大战僵尸',
* width: 560,
* height: 465,
* logo: '应用展示的图片',
* url: '百度应用的地址'
* } );
* ```
*/
//UE.plugins['webapp'] = function () {
// var me = this;
// function createInsertStr( obj, toIframe, addParagraph ) {
// return !toIframe ?
// (addParagraph ? '
' : '') + '
' +
// (addParagraph ? '
' : '')
// :
// '';
// }
//
// function switchImgAndIframe( img2frame ) {
// var tmpdiv,
// nodes = domUtils.getElementsByTagName( me.document, !img2frame ? "iframe" : "img" );
// for ( var i = 0, node; node = nodes[i++]; ) {
// if ( node.className != "edui-faked-webapp" ){
// continue;
// }
// tmpdiv = me.document.createElement( "div" );
// tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( "_url" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace("url(","").replace(")","")} : {url:node.getAttribute( "src", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute("logo_url")}, img2frame ? true : false,false );
// node.parentNode.replaceChild( tmpdiv.firstChild, node );
// }
// }
//
// me.addListener( "beforegetcontent", function () {
// switchImgAndIframe( true );
// } );
// me.addListener( 'aftersetcontent', function () {
// switchImgAndIframe( false );
// } );
// me.addListener( 'aftergetcontent', function ( cmdName ) {
// if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){
// return;
// }
// switchImgAndIframe( false );
// } );
//
// me.commands['webapp'] = {
// execCommand:function ( cmd, obj ) {
// me.execCommand( "inserthtml", createInsertStr( obj, false,true ) );
// }
// };
//};
UE.plugin.register('webapp', function (){
var me = this;
function createInsertStr(obj,toEmbed){
return !toEmbed ?
'
'
:
''
}
return {
outputRule: function(root){
utils.each(root.getNodesByTagName('img'),function(node){
var html;
if(node.getAttr('class') == 'edui-faked-webapp'){
html = createInsertStr({
title:node.getAttr('title'),
'width':node.getAttr('width'),
'height':node.getAttr('height'),
'align':node.getAttr('align'),
'cssfloat':node.getStyle('float'),
'url':node.getAttr("_url"),
'logo':node.getAttr('_logo_url')
},true);
var embed = UE.uNode.createElement(html);
node.parentNode.replaceChild(embed,node);
}
})
},
inputRule:function(root){
utils.each(root.getNodesByTagName('iframe'),function(node){
if(node.getAttr('class') == 'edui-faked-webapp'){
var img = UE.uNode.createElement(createInsertStr({
title:node.getAttr('title'),
'width':node.getAttr('width'),
'height':node.getAttr('height'),
'align':node.getAttr('align'),
'cssfloat':node.getStyle('float'),
'url':node.getAttr("src"),
'logo':node.getAttr('logo_url')
}));
node.parentNode.replaceChild(img,node);
}
})
},
commands:{
/**
* 插入百度应用
* @command webapp
* @method execCommand
* @remind 需要百度APPKey
* @remind 百度应用主页: http://app.baidu.com/
* @param { Object } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度,
* height=>应用容器高度,logo=>应用logo,url=>应用地址
* @example
* ```javascript
* //editor是编辑器实例
* //在编辑器里插入一个“植物大战僵尸”的APP
* editor.execCommand( 'webapp' , {
* title: '植物大战僵尸',
* width: 560,
* height: 465,
* logo: '应用展示的图片',
* url: '百度应用的地址'
* } );
* ```
*/
'webapp':{
execCommand:function (cmd, obj) {
var me = this,
str = createInsertStr(utils.extend(obj,{
align:'none'
}), false);
me.execCommand("inserthtml",str);
},
queryCommandState:function () {
var me = this,
img = me.selection.getRange().getClosedNode(),
flag = img && (img.className == "edui-faked-webapp");
return flag ? 1 : 0;
}
}
}
}
});