Axi*_*ili 2 tinymce umbraco umbraco6
我刚从Umbraco 4.7.1升级到6.1.6
我的自定义部分中有一个TinyMCE控件.它在升级后停止工作.
以下是自定义部分中页面代码的一部分:
public partial class MyCustomPage : UmbracoEnsuredPage
{
private TinyMCE txtLongDesc;
protected UmbracoPanel UmbPanel { get { return Web.FindControlRecursive(Master, "umpContent") as UmbracoPanel; } }
protected override void Page_Init(object sender, EventArgs e)
{
base.Page_Init(sender, e);
PutTinyMce(ref txtLongDesc, "txtLongDesc", phLongDesc, UmbPanel);
}
public static void PutTinyMce(ref TinyMCE control, string controlId, PlaceHolder placeHolder, UmbracoPanel panel)
{
DataTypeDefinition d = DataTypeDefinition.GetDataTypeDefinition(2710); // My custom TinyMCE DataType
control = (umbraco.editorControls.tinyMCE3.TinyMCE)d.DataType.DataEditor;
control.ID = controlId;
placeHolder.Controls.Add(control);
panel.Menu.NewElement("div", "umbTinymceMenu_" + control.ClientID, "tinymceMenuBar", 0); // Add TinyMCE controls to menu bar
}
}
Run Code Online (Sandbox Code Playgroud)
呈现页面时,隐藏了textarea,但未显示TinyMCE.
这是我得到的JavaScript错误:
类型错误:的document.getElementById(...)为null @ ... /一把umbraco /插件/ tinymce3/tinymce3tinymceCompress.aspx RND = 00000000-0000-0000-0000-000000000000及模块= gzipmodule&主题=一把umbraco和插件=文本菜单,umbracoimg,粘贴,inlinepopups? ,表,umbracocss,advlink,umbracoembed,拼写检查,不可编辑,umbracomacro,umbracopaste,umbracolink,umbracocontextmenu与语言= EN:19803
这是导致错误的行(19803行)
document.getElementById(ed.getParam("umbraco_toolbar_id", "*")).appendChild(c);
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个问题?知道怎么解决吗?
在摆弄它之后,我设法修复它,虽然我不太明白为什么.
显然在Umbraco 6.1.6中你必须手动添加umbraco_toolbar_id,所以我添加了这2行
control.ClientIDMode = ClientIDMode.Static;
control.config.Add("umbraco_toolbar_id", "umbTinymceMenu_" + control.ClientID);
Run Code Online (Sandbox Code Playgroud)
成为这个功能
public static void PutTinyMce(ref TinyMCE control, string controlId, PlaceHolder placeHolder, UmbracoPanel panel)
{
DataTypeDefinition d = DataTypeDefinition.GetDataTypeDefinition(Static.DTD_ID_SMALL_RTE); // Custom TinyMCE DataType
control = (umbraco.editorControls.tinyMCE3.TinyMCE)d.DataType.DataEditor;
control.ID = controlId;
control.ClientIDMode = ClientIDMode.Static;
control.config.Add("umbraco_toolbar_id", "umbTinymceMenu_" + control.ClientID);
placeHolder.Controls.Add(control);
panel.Menu.NewElement("div", "umbTinymceMenu_" + control.ClientID, "tinymceMenuBar", 0); // Add TinyMCE controls to menu bar
}
Run Code Online (Sandbox Code Playgroud)
修好了.我的TinyMCE再次出现:)
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |