Parapraph plugin for FckEditor 2.6

FckEditor 2.6b 出来了,赶紧下来看看,最喜欢它那个酷酷的弹出窗口biggrin

赶紧试着把自己的插件往上加,研究了一下后终于搞定。这是我的段落属性编辑插件,拿出来给大家指正。

fckplugin.js

/*
 * For FCKeditor 2.6
 * 
 * File Name: fckplugin.js
 * 	Add a toolbar button to Parapraph.
 * 
 * File Authors:
 * 		lurocky
 */


// Register the related commands.
FCKCommands.RegisterCommand("Paragraph", new FCKDialogCommand(FCKLang["DlgPar"], FCKLang["DlgPar"], FCKConfig.PluginsPath + "paragraph/paragraph.html", 260, 300));

// Create the "Parapraph" toolbar button.
var ParapraphItem = new FCKToolbarButton("Paragraph", FCKLang["DlgPar"]);
ParapraphItem.IconPath = FCKConfig.PluginsPath + "paragraph/paragraph.gif";
FCKToolbarItems.RegisterItem("Paragraph", ParapraphItem);			// 'Parapraph' is the name used in the Toolbar config.
function FCK_ContextMenu_GetListener_Paragraph() {
  return {AddItems:function (menu, tag, tagName) {
    var range = new FCKDomRange(FCK.EditorWindow);
    range.MoveToSelection();
    var bookmark = range.CreateBookmark();
    var iterator = new FCKDomRangeIterator(range);
    var block;
    var hasParapraph = false;
    while ((block = iterator.GetNextParagraph())) {
      hasParapraph = true;
    }
    range.MoveToBookmark(bookmark);
    range.Select();
    if (hasParapraph) {
      menu.AddSeparator();
      menu.AddItem("Paragraph", FCKLang["DlgPar"], ParapraphItem.IconPath);
    }
  }};
}
FCK.ContextMenu.RegisterListener(FCK_ContextMenu_GetListener_Paragraph());

 

 

parapraph.js

 

var dialog    = window.parent ;
var oEditor   = dialog.InnerDialogLoaded() ;
var FCK     = oEditor.FCK ;
var FCKConfig = oEditor.FCKConfig ;
var FCKTools = oEditor.FCKTools ;

var Styles = new Array();

window.onload = function()
{
	oEditor.FCKLanguageManager.TranslatePage(document) ;
	LoadSelection();
	dialog.SetAutoSize( true ) ;
	dialog.SetOkButton( true ) ;
};

function LoadSelection()
{
    dialog.Selection.EnsureSelection();//for IE
    var range = new oEditor.FCKDomRange( FCK.EditorWindow ) ;
    range.MoveToSelection() ;
    var bookmark = range.CreateBookmark() ;
	var iterator = new oEditor.FCKDomRangeIterator( range ) ;
	var block ;
	var i = 0;
	while ( ( block = iterator.GetNextParagraph() ) )
	{
			Styles[Styles.length] = block.style ;
	}
    range.MoveToBookmark( bookmark ) ;
    range.Select() ;
	var sMarginTop = "";
	var sMarginBottom = "";
	var sMarginLeft = "";
	var sMarginRight = "";
	var sTextAlign = "";
	var sLineHeight = "";
	var sTextIndent = "";
	var sLetterSpacing = "";
	for ( i = 0; i < Styles.length; i = i + 1)
	{
		if ( i == 0 )
		{
			sMarginTop = Styles[i].marginTop;
			sMarginBottom = Styles[i].marginBottom;
			sMarginLeft = Styles[i].marginLeft;
			sMarginRight = Styles[i].marginRight;
			sTextAlign = Styles[i].textAlign ;
			sLineHeight = Styles[i].lineHeight;
			sTextIndent = Styles[i].textIndent;
			sLetterSpacing = Styles[i].letterSpacing;
		}
		else
		{
			if ( Styles[i].marginTop != sMarginTop ) sMarginTop = "";
			if ( Styles[i].marginBottom != sMarginBottom ) sMarginBottom = "";
			if ( Styles[i].marginLeft != sMarginLeft ) sMarginLeft = "";
			if ( Styles[i].marginRight != sMarginRight ) sMarginRight = "";
			if ( Styles[i].textAlign != sTextAlign ) sTextAlign = "";
			if ( Styles[i].lineHeight != sLineHeight ) sLineHeight = "";
			if ( Styles[i].textIndent != sTextIndent ) sTextIndent = "";
			if ( Styles[i].letterSpacing != sLetterSpacing ) sLetterSpacing = "";
		}
	}
	GetE('d_align').value    = sTextAlign ;
	GetE('d_margintop').value    = sMarginTop ;
	GetE('d_marginbottom').value    = sMarginBottom ;
	GetE('d_marginleft').value    = sMarginLeft ;
	GetE('d_marginright').value    = sMarginRight ;
	GetE('d_lineheight').value    = sLineHeight ;
	GetE('d_textindent').value    = sTextIndent ;
	GetE('d_letterspacing').value    = sLetterSpacing ;
}

//#### The OK button was hit.
function Ok()
{
	sMarginTop = GetE('d_margintop').value;
	sMarginBottom = GetE('d_marginbottom').value;
	sMarginLeft = GetE('d_marginleft').value;
	sMarginRight = GetE('d_marginright').value;
	sTextAlign = GetE('d_align').value;
	sLineHeight = GetE('d_lineheight').value;
	sTextIndent = GetE('d_textindent').value;
	sLetterSpacing = GetE('d_letterspacing').value;
	
	oEditor.FCKUndo.SaveUndoStep() ;
	for ( i = 0; i < Styles.length; i = i + 1)
	{
		Styles[i].marginTop = GetE('d_margintop').value;
		Styles[i].marginBottom = GetE('d_marginbottom').value;
		Styles[i].marginLeft = GetE('d_marginleft').value;
		Styles[i].marginRight = GetE('d_marginright').value;
		Styles[i].textAlign = GetE('d_align').value;
		Styles[i].lineHeight = GetE('d_lineheight').value;
		Styles[i].textIndent = GetE('d_textindent').value;
		Styles[i].letterSpacing = GetE('d_letterspacing').value;
	}
	return true;
}

 

 

全部文件打包:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值