2

我一直在尝试在我的网站(我用来提交短篇小说)的表单上使用 nicedit (http://nicedit.com/)。该表单包括几个 textareas ()。其中之一是短篇小说的内容,我想在上面使用nicedit。另一个文本区域用于标记,我不想在其上使用 nicedit。但是,nicedit 对两者都适用。

这是我用来调用nicedit代码的javascript代码

<script type="text/javascript" src="core/rte.js"></script> <script type="text/javascript">
//<![CDATA[
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
//]]>

我签入了 nicEdit.js 和 allTextAreas() 对应于:

allTextAreas : function(nicOptions) {
var textareas = document.getElementsByTagName("textarea");
for(var i=0;i<textareas.length;i++) {
nicEditors.editors.push(new nicEditor(nicOptions).panelInstance(textareas[i]));
}
return nicEditors.editors;
},

我还在 ingetnet 上进行了调查,但找不到关于如何使 nicedit 代码仅影响一个文本区域的答案。任何人都可以帮忙吗?

4

3 回答 3

19

通过查看您发布的代码,这应该可以工作:

<script type="text/javascript" src="core/rte.js"></script>
<script type="text/javascript">
//<![CDATA[
bkLib.onDomLoaded(function() {
    nicEditors.editors.push(
        new nicEditor().panelInstance(
            document.getElementById('myNicEditor')
        )
    );
});
//]]>
</script>

只需给您的 textarea 任何您使用的 id:

<textarea id="myNicEditor"></textarea>
于 2012-06-12T07:19:01.583 回答
2

对于任何希望通过类名使用多个 textarea 来执行此操作的人,我正在使用Nathan Wall 的示例,并进行了一些更改:

<script type="text/javascript">
  //<![CDATA[
  bkLib.onDomLoaded(function() {
    elementArray = document.getElementsByClassName("nice-edit");
    for (var i = 0; i < elementArray.length; ++i) {
      nicEditors.editors.push(
        new nicEditor().panelInstance(
          elementArray[i]
        )
      );
    }
  });
  //]]>
</script>

在类名中使用任意数量的文本区域nice-edit

<textarea class="nice-edit"></textarea>

在 Rails 中,我使用 CoffeeScript,这是我修改后的代码:

$ ->
  #<![CDATA[
  elementArray = document.getElementsByClassName("nice-edit")
  i = 0
  while i < elementArray.length
    nicEditors.editors.push new nicEditor(fullPanel: true).panelInstance(elementArray[i])
    ++i
  #]]>

您会注意到我完全删除了该bkLib.onDomLoaded行,只是调用了文档函数的等效项 do $ ->。原因是由于turbolinksbkLib.onDomLoaded最初无法加载。它仅适用于刷新。这就是为什么我把它删除了。

于 2014-11-05T13:58:25.477 回答
1

我使用原始函数作为起点,通过标记名为所有文本区域制作了它

<script type="text/javascript">

bkLib.onDomLoaded(function () {

    var textareas = document.getElementsByTagName("textarea");

    for(var i=0;i<textareas.length;i++)
     {
        var myNicEditor = new nicEditor();
        myNicEditor.panelInstance(textareas[i]);

     }
});

于 2013-06-01T17:23:46.097 回答