当我点击导致UpdatePanel
回发的按钮时,它会调用tinyMCE.triggerSave()
。
重新加载面板并且编辑器再次显示,但是当我第二次尝试调用tinyMCE.triggerSave()
时出现以下错误:
g.win.document is null
我虽然得到了旧实例,但在调用save之后我也删除了控件(tinyMCE.execCommand('mceRemoveControl',false,'Editor');
)。即便如此,它仍然第二次崩溃。
我该如何解决?
答案 0 :(得分:6)
tinyMCE.execCommand( 'mceRemoveControl',真, '编辑器');
在离开UpdatePanel之前,它会强制tinyMCE完全删除,然后当你再次添加时它不会崩溃。
答案 1 :(得分:2)
经过多次混淆后,我发现@André Gadonski发布的修补程序不再适用于TinyMCE版本4.它不仅不起作用,而且没有向控制台提供错误反馈!
新命令为mceRemoveEditor
来源:http://www.tinymce.com/forum/viewtopic.php?id=31256
我发现这可以在重新启动TinyMCE之前直接使用,或者在ASP更新面板使用之前刷新;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
function BeginRequestHandler(sender, args) {
tinymce.execCommand('mceRemoveEditor', true, 'EditorID');
}
答案 2 :(得分:2)
对于tinymce 3.2.x,使用以下命令删除IE8或任何其他浏览器中的tinyMCE实例。由于tinymce.execCommand函数使输入字段在IE8中不可编辑。
tinyMCE.remove(editor); //editor is instance of tinymce editor and not editor id
这将修复“Permission Denied”错误,而不会禁用同一页面中的其他输入字段。
答案 3 :(得分:2)
我有同样的问题。为了解决这个问题,你可以添加元素创建回发的脚本代码。我的按钮创建回发后,我添加它OnClientClick():
<asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()"
runat="server">save</asp:LinkButton>
和脚本是:
function dotim() {
tinyMCE.triggerSave();
} // this is my attempt at a fix
答案 4 :(得分:0)
我在角度2中使用了tinymce。但是,当我重定向后,tinymce消失了。 我猜是因为重用了tinymce。 因此,在使用前,我删除了tinymce。
tinymce.execCommand('mceRemoveEditor', true, 'templateEditor');
tinymce.init({
selector: '#templateEditor',
menubar: false,
plugins: ['autoresize']
});
谢谢。