我一直在尝试在我的网站(我用来提交短篇故事)的表格上使用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代码影响的答案。有人可以帮忙吗?
答案 0 :(得分:16)
通过查看您发布的代码,这应该有效:
<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>
答案 1 :(得分:1)
我使用原始函数作为起点,通过标记名为所有textareas创建了
<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]);
}
});
答案 2 :(得分:1)
对于那些希望使用多个textarea按类名执行此操作的人,我使用Nathan Wall's example进行了一些更改:
<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
行,并且只是调用了文档函数的等效函数$ ->
。原因是bkLib.onDomLoaded
由于 turbolinks 而无法最初加载。它只适用于刷新。这就是为什么我把它删除了。