nicedit所见即所得编辑器+字符数
nicedit WYSIWYH editor + character count
我在文本区域上使用nicedit来实现丰富的编辑器功能。我还想在文本区域的末尾添加字符计数器,以便用户在文本区域中键入特定数量的字符。我使用了上面的代码,编辑器工作得很好。
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
感谢
那么,您只需要知道文本区域中的字符数?
您可以通过textarea值的length属性来获得:textarea.value.length
这里有一个例子:
<textarea onkeyup="console.log(this.value.length)"></textarea>
这是一个字符计数检查。这不是万无一失的,但它会让你开始:
<textarea onkeyup="updateCounter(this)" onpropertychange="this.onkeyup()"></textarea>
<div id="limit"></div>
<script>
var limit = document.getElementById("limit");
function updateCounter(textarea) {
var len = textarea.value.length;
var max = 10;
if(max - len < 0) {
textarea.value = textarea.value.substring(0, max);
} else {
limit.innerHTML = max - len;
}
}
</script>
另外,请记住Stack Overflow是一个程序员帮助网站。我们将帮助解决编码问题,但我们不仅仅是为人们编写程序(有很多网站可以这样做;)。
如果您想要一个NicEdit文本区域的动态字符计数器,那么您应该意识到NicEditor(以及大多数/所有所见即所得HTML编辑器)是一个可编辑的div,并且只有在div失去焦点后,div的内容才会添加到关联的文本区域。我发现,简单地尝试动态统计文本区域中的字符数是行不通的。也许我做错了什么。无论如何,我确实得到了一个动态的NicEdit字符计数器,如下所示:
-
设置HTML页面以使用NicEdit:
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
-
添加对包含计数器函数的JavaScript文件的引用:
<script type="text/javascript" language="JavaScript" src="nicCount.js"></script>
-
nicCount.js的内容是:
function nicCount(editor, ctrId, maxChars) { // Count characters remaining in the given nicEditor (editor), and update the given counter (ctrId) counterObj = document.getElementById(ctrId); if(counterObj) { var content = editor.getContent(); if(maxChars - content.length <= 0) { // if there are no characters remaining, display the negative count in red counterObj.innerHTML = "<font color='red'>"+ (maxChars - content.length) + "</font>"; } else { // characters remaining counterObj.innerHTML = maxChars - content.length; } } }
-
定义一个文本区域,确保它有一个唯一的ID:
<textarea name='mytextarea1' id='mytextarea1
行=10列=100>` -
根据计数器的显示位置,将以下HTML代码放在文本区域代码的上方或下方。实际计数器值也被赋予了一个唯一的ID:
<p><b id='mycounter1'>1000</b> characters remaining</p>
-
在文本区域和计数器行之后,我添加了以下HTML代码块,以动态调用我的:
<script type="text/javascript"> //<[!CDATA[ bkLib.onDomLoaded (function() { var editor = nicEditors.findEditor('mytextarea1'); editor.getElm().onkeyup = function() { nicCount(editor, 'mycounter1', 1000); } }) //]] </script>
注意,我的字符计数器实际上是一个剩余字符计数器(有1000个字符的限制),因为我对在文本区域强制执行字符限制感兴趣(并让用户知道他们还可以添加多少字符),但它可以很容易地调整为实际使用的字符计数器。
我在FireFox 26和IE9中进行了测试。
也有这个问题,经过一番搜索,我找到了这个解决方案:
$('body').on('keyup keydown focus','.nicEdit-selected', function (event) { $('#chars_text').text($(this).html().replace(/<'/?[^>]+(>|$)/g, "").length)});
chars_text id可以是例如放置在nicedit附近的SPAN元素其他解决方案是基于.text().length,nicEdit使用html(),这带来了另一个问题-字符数也包括nicEdit插入的TAGS,所以你必须首先将它们剥离。
希望得到帮助。
- ExtJS网格单元格编辑器,防止焦点松动问题
- 可以't使用PHP使用Froala编辑器上传图像URL
- 如何在corona sdk中从CK编辑器中检索数据
- Eclipse编辑器中无法访问的代码
- 如何将拼写检查集成到密文编辑器
- 如何从拼音编辑器中删除特殊字符
- TinyMCE文本编辑器最大字符限制
- 在 jquery te 文本编辑器中添加特殊字符选项
- 确定 RICHT 文本编辑器中每个字符的字符样式
- Mozilla Builder 编辑器取消转义 Unicode 字符,并发 w. AMO 上传失败
- 如何在文本编辑器中创建带有字符的标签
- 计算aloha编辑器中文本区域的字符数
- nicedit所见即所得编辑器+字符数
- 所见即所得HTML编辑器,字符左和MySQL存储优化
- 如何验证在tinymce(gem)编辑器rails应用程序中输入的字符数
- 如何设置剑道UI编辑器的selecterange来突出显示多余的字符,如Twitter
- Aptana编辑器显示奇怪的字符-缩进
- 限制Dojo富文本编辑器中允许的字符数
- Wysihtml5编辑器-限制字符数
- Ajax Html编辑器不计数字符在母版页使用ASP.净c#