Javascript ExtJS:启动HtmlEditor默认为源

Javascript ExtJS:启动HtmlEditor默认为源,javascript,extjs,html-editor,Javascript,Extjs,Html Editor,我使用的是extjs3.2.1,我需要一个与捆绑的HtmlEditor几乎相同的组件,但有一个例外:它必须直接开始编辑HTML源代码。我不使用普通文本区域的原因是,用户应该能够在提交之前预览其操作的结果 根据ExtJS文档,我尝试调用toggleSourceEdit(),但没有成功。在调试过程中,我看到编辑器对象的sourceEditMode属性设置为true,源代码编辑按钮似乎被“按下”,但单击它不会呈现键入的HTML,再次单击它将进入源代码模式 我尝试在container show()方法之

我使用的是extjs3.2.1,我需要一个与捆绑的HtmlEditor几乎相同的组件,但有一个例外:它必须直接开始编辑HTML源代码。我不使用普通文本区域的原因是,用户应该能够在提交之前预览其操作的结果

根据ExtJS文档,我尝试调用toggleSourceEdit(),但没有成功。在调试过程中,我看到编辑器对象的sourceEditMode属性设置为true,源代码编辑按钮似乎被“按下”,但单击它不会呈现键入的HTML,再次单击它将进入源代码模式

我尝试在container show()方法之后,在container afterLayout侦听器和编辑器afterRender侦听器上调用toggleSourceEdit()。我还尝试在添加到容器的另一个按钮上调用它。每次尝试的结果都是一样的

我看到的唯一其他选项是将ExtJS更新为3.3.0,但我似乎没有任何与变更日志相关的内容。不管怎样,这将是我的下一步编辑:该应用程序在更新时出现了另一个问题,我们将在稍后进行更大的更新。到目前为止,我们正在使用HtmlEditor的原始设置


谢谢

而不是调用toggleSourceEdit(),在创建HtmlEditor对象时尝试设置配置

遇到了相同的问题(顺便说一下,使用3.3.0)

由于愚蠢的运气偶然发现了一个解决办法。我不知道为什么会这样,但第二次是魅力。连续调用两次以达到预期效果

HTMLEditor.toggleSourceEdit(true);
HTMLEditor.toggleSourceEdit(true);

希望有帮助

使用
toggleSourceEdit()
给我带来了一些问题。一个是,这似乎使编辑器处于源代码编辑和所见即所得模式之间,除非我使用了250毫秒左右的超时。它还将焦点放在编辑器中,我不想在编辑器中启动表单的焦点,特别是因为它位于折叠下方,并且浏览器在打开时滚动到焦点html编辑器

唯一对我有效的方法是扩展
Ext.form.HtmlEditor
,然后覆盖
toggleSourceEdit
,删除focus命令。然后添加一个侦听器,以便在初始化组件时切换到源编辑器。这是Ext 4.1及更高版本的。对于旧版本,请将
me.updateLayout()
替换为
me.doComponentLayout()

然后使用它:

Ext.create('Namespace.SourceEditor', {
  /*regular options*/
  listeners: {
    initialize: function(thisEditor) {
            thisEditor.toggleSourceEdit();
    }
  }
});
如果在侦听编辑器的afterrender事件时执行此操作,一次就足够了

Ext.create('Namespace.SourceEditor', {
  /*regular options*/
  listeners: {
    initialize: function(thisEditor) {
            thisEditor.toggleSourceEdit();
    }
  }
});
htmlEditor.toggleSourceEdit(true);