为什么文本添加到区域文本是通过页面刷新,而不是直接刷新

Why does text added to areatext by page refresh , not directly

本文关键字:刷新 文本 添加 区域 为什么      更新时间:2023-09-26

我有nicedit来获得areatext作为编辑器。

 <select id="greetings" name="greetings">
      <option value="" selected>Select one </option>
      <option value="1" onClick="addGreeting('text1'); return false;">text1</option>
      <option value="2" onClick="addGreeting('text2'); return false;">text2</option>
      <option value="3" onClick="addGreeting('text3'); return false;">text3</option>
    </select>
<textarea name="message" id="message" cols="50" rows="8" ></textarea>

所以当用户选择该选项时,它将自动插入到文本区域。

这里的javascript代码

 bkLib.onDomLoaded(nicEditors.allTextAreas);
   function addGreeting(text) {
text = ' ' + text + ' ';
if (document.sc_form.message.createTextRange && document.sc_form.message.caretPos) {
    var caretPos = document.sc_form.message.caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
    document.sc_form.message.focus();
} else {
document.sc_form.message.value  += text;
document.sc_form.message.focus();
}
  }

OBS如果没有niceditor,则会直接插入所选选项。但是不是只有当我刷新页面时才插入的。

我希望插入的文本不会刷新。

如果有人对脚本的顺序感兴趣,这里是我的订单

<script src="submit.js" language="JavaScript" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/redmond/jquery-ui.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="include/nicEdit-latest.js"></script>  

任何其他的东西都让我知道,我插入它,谢谢你花时间处理我的代码。

编辑:

这里是我的DEMO JSFIDDLE//这不适用于编辑器插件。

这个DEMO JSFIDDLE//这在没有插件的情况下工作

--我认为问题出在bkLib.onDomLoaded上,这就是为什么文本可能是在页面加载(刷新)后插入的,有关于如何替换它的建议吗?

nicedit 没有问题

nicedit作为wysiwyg的100%在实例化时修改dom,隐藏您的文本区域或任何要编辑的html元素

  • 要么学习nicedit API,然后创建一个自定义按钮/下拉列表来附加文本

  • 要么在更改事件(.removeInstance())时销毁实例,要么将文本附加到可编辑的编辑器中,然后重新实例化编辑器

清洁解决方案是第一个,惰性解决方案是第二个