【问题标题】:How to replace RichTextEditor text without loosing the formatting in Flex如何在不丢失 Flex 格式的情况下替换富文本编辑器文本
【发布时间】:2017-09-30 15:09:45
【问题描述】:

在我的 ActionScript 代码中,我使用 RichTextEditor 执行以下操作。

protected function createEmailTemplateContent(subRecord:String = null):void{
var index:int = emailTemplateContent.selection.beginIndex;
if(subRecord != null){
    emailTemplateContent.text = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem.toString().substring(0,insertFieldDD.selectedItem.toString().indexOf('(+)')-1) +  '].[' + subRecord + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
}else{
    emailTemplateContent.text = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
}
}

上述方法在用户从下拉列表中选择一个项目时实现。然后该特定项目将填充到富文本编辑器的文本区域内。

我的问题是,如果用户已经对文本进行了一些格式化(使用 RichTextEditor 中的格式化选项),那么当用户选择一个项目并填充文本区域时,这些也会被替换。

在此,'emailTemplateContent' 表示 RichTextEditor。我在下面包含了我的 RichTextEditor 代码。

<component:RichTextEditorWithAllControls id="emailTemplateContent" dropShadowVisible="false" creationComplete="emailTemplatesContentInit()" headerHeight="0" width="100%" height="100%" htmlText="@{emailTemplateObject.emailContent}" showControlBar="false" verticalScrollPolicy="auto"/>

我假设发生这种情况是因为当我在richTextEditor 中填充“文本”值时,“htmlText”值也会被替换。

有谁知道解决这个问题的方法。

提前致谢。

【问题讨论】:

  • 您能否添加显示格式化文本的屏幕截图以及从下拉列表中选择项目后会发生什么?

标签: actionscript-3 flash apache-flex actionscript rich-text-editor


【解决方案1】:

首先将连接的文本存储在一个String中,然后在html文本中替换它。像下面这样的

protected function createEmailTemplateContent(subRecord:String = null):void{
  var index:int = emailTemplateContent.selection.beginIndex;
  var newText:String;
  if(subRecord != null){
    newText = emailTemplateContent.text.substring(0,index) 
    + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem.toString().substring(0,insertFieldDD.selectedItem.toString().indexOf('(+)')-1) +  '].[' + subRecord + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
  }else{
    newText = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
  }
  emailTemplateContent.htmlText = emailTemplateContent.htmlText.replace(emailTemplateContent.text, newText);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2010-12-21
    • 2019-01-09
    • 2016-02-18
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多