2012-01-09 66 views
0

我想加载在asp.net中的CKEditor中的HTML文件,但由于某种原因,我不知道如何把代码放在文件后面的代码。ckeditor在编辑器中加载html代码asp.net

CKEditor1.FilebrowserBrowseUrl = url; 
CKEditor1.BasePath = url; 
CKEditor1.Text = content; 

没有一个帮助 有什么建议吗?提前致谢,Laziale

回答

0

我不确定你使用的是哪个版本,但假设它是3.x.我正在玩弄控制,并没有找到任何可能的方式,从代码背后做到这一点。不过,我设法使它工作是这样的:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "fckInitialization", @" 
     window.onload = function() {    
       var oEditor = CKEDITOR.instances['" + txtPost.ClientID + @"']; 
       oEditor.insertHtml('<strong>This is a bold text.</strong>');     
     }; 
     ", true); 

我尝试在IE 8和Mozilla的最新版本(我认为这是9)和它的工作。我也尝试过相同的事情,但不是window.onload我使用了jQuery $(document).ready(),它只能在IE中使用。原因是你必须等待所有的东西加载才能使用CKEditor API中的函数。我玩过Firebug和insertHTML工作。 如果你使用的是2.x,你可以在谷歌的某个地方看到相同的方法,但使用不同的API。我现在找不到链接。

另外一个问题就是在这里,你可能会发现,如果你想初始化一个长文本,你将不得不用脚本编写所有东西,这并不是很好。

也许一个可能的解决办法是将您的HTML转换为BBCode,然后设置文本属性。当然,这取决于您使用控件的方式,因为BBCode不包含所有可能的标签,但您可以随时修改CKEditor的bbcode插件以满足您的需求。我测试了它,它工作。

PS。可能你可以用JavaScript方法和AJAX调用来完成它。

希望这会有所帮助!

0

假设ckeditor正在从textarea字段初始化,您可以简单地填充textarea的主体。

+0

thx您的回复,但我只有这个: 。我是否也需要使用textarea? – Laziale 2012-01-09 23:23:21

+0

不,在这种情况下,您正在使用CKEditor进行包装。设置CKEditorControl的TEXT属性不起作用? – 2012-01-09 23:32:51

+0

nope,它给我的HTML代码作为文本,而不是在控制中呈现为html,并且我有启动模式为所见即所得 – Laziale 2012-01-09 23:35:04