在弹出窗口上访问编辑器:
1、如何在编辑器中插入文本:
		前置约定:
插件名:insertvariables
插件位置:editor/plugins/insertvariables/
//创建自己的命令,不采用FCKDialogCommand的目的是FCKDialogCommand使用的是fck的缺省布局。
var InsertVariableCommand=function(){
};
InsertVariableCommand.prototype.Execute=function(){
}
//让按钮不能点击。
InsertVariableCommand.GetState=function() {
        return FCK_TRISTATE_OFF; }
//打开弹出窗口
InsertVariableCommand.Execute=function() {
        window.open('insertVariable.do', 'insertVariable', 'width=500,height=400,scrollbars=no,scrolling=no,location=no,toolbar=no');
}
//注册命令:
FCKCommands.RegisterCommand('Insert_Variables', InsertVariableCommand ); 
//注册按钮
var oInsertVariables = new FCKToolbarButton('Insert_Variables', 'insert variable');
oInsertVariables.IconPath = FCKConfig.PluginsPath + 'insertvariables/variable.gif'; 
FCKToolbarItems.RegisterItem( 'Insert_Variables', oInsertVariables );
		
		
		
		
		
				
				
		
		//插入变量的请求页面:insertVariable.do
<html><head> etc...
<script language="javascript">
        <!--
        var variable            = null;
        var FCK                 = window.opener.FCK;
        function ok() {
                if(variable != null) {
                        FCK.Focus();
                        //只在ie中有效
                        var B = FCK.EditorDocument.selection.createRange(); 
                        B.text = variable;
                }
                window.close();
        }
        //-->
</script>
</head>
<body>
etc..
<a href="#" onClick="variable='this is a test'; ok();">insert text</a>
</body>
</html>
		
		
		
		
		
				
				
		
		//在fckconfig.js文件中加入以下字段
FCKConfig.Plugins.Add( 'insertvariables' ) ;
FCKConfig.ToolbarSets["myToolbar"] = [
        ['Bold','Italic','Underline'],['Insert_Variables']
] ;
		
				2、关联上下文菜单选项:
将插件的command注册到上下文菜单中:
FCK.ContextMenu.RegisterListener( {
        AddItems : function( menu, tag, tagName )
        {
                // 符合条件显示:if ( tagName == 'IMG' && !tag.getAttribute( '_fckfakelement' ) )
                if ( tagName == 'SPAN' && tag._fckplaceholder )
                {
                        // 显示分隔符
                        menu.AddSeparator() ;
                        // 需要注册命令名,标题,以及图片路径。
   menu.AddItem( 'placeholder', FCKLang.PlaceholderDlgTitle, oPlaceholderItem.IconPath ) ;
                }
        }}
);
		
	posted on 2007-04-10 20:21 
不做浮躁的人 阅读(1205) 
评论(0)  编辑  收藏