- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚用出色的 Redactor 替换了 CKEditor(它伴随着大量与 AJAX 更新 DOM 相关的神秘问题) .我们以前使用 CKEditor 插件为我们提供富文本编辑器的字符数。我怎样才能用 Redactor 达到同样的目的?没有任何内置内容,也没有可供使用的“插件”架构。
最佳答案
我试过这个。我确信会有更好的方法来实现同样的事情,但我会发布它,以防它对处于相同修复中的其他人来说是一个好的开始。
以下代码将富文本编辑器添加到任何具有“richText”类的文本区域字段,并且仅当在文本区域上使用 maxlength 属性时才进一步添加字符数,例如
<textarea class="richText" maxlength="100"></textarea>
在这里,我在 javascript 中包含了 CSS。实际上,我会把它放到一个单独的 css 文件中。
var initRichText = function () {
$("textarea.richText").redactor({
buttons: ['bold', 'italic', '|', 'unorderedlist', 'orderedlist'],
keyupCallback: function (obj, event) {
var max = obj.$el.getEditor().next().attr("maxlength");
if (typeof max !== "undefined") {
var current = obj.$el.getCode().length;
var $box = obj.$el.closest(".redactor_box");
var $indicator = $(".indicator", $box);
if ($indicator.size() === 0) {
$box.append($("<div class='indicator' style='position:absolute;z-index:30;top:7px;right:7px;'><span class='current'>" + current + "</span> of <span class='max'>" + max + "</span> characters remaining</div>"));
} else {
$(".current", $indicator).text(current);
$(".max", $indicator).text(max);
}
if (current >= max) {
$box.css("border", "1px solid #ff0000");
$indicator.css("color", "#ff0000");
} else {
$box.css("border", "1px solid #DDDDDD");
$indicator.css("color", "#000000");
}
}
}
});
};
$(function(){
initRichText();
});
编辑:正如 MForMarlon 所说,自从我们编写这段代码以来,redactor.js 已经发生了变化。一个非常奇怪的巧合,我们今天正在研究这个,已经一年多没有碰过它了!诡异的。不管怎样,这里是适用于 Redactor v9.2.5 的最新版本。请注意,我们现在使用 initCallback 在富文本编辑器首次加载时应用字符计数器,而不是在用户开始键入时。我们还使用 changeCallback 而不是 keyupCallback,因为我们添加了“粘贴为纯文本”模态(请参阅 redactor.js pastePlainText - but need button to paste html instead),我们希望对通过它粘贴和输入的内容使用react。
$(".richText").redactor({
shortcuts: false,
buttons: ['bold', 'italic', '|', 'unorderedlist', 'orderedlist', '|', 'html', 'pasteAsPlainText'],
plugins: ['pasteAsPlainText'],
initCallback: function (event) {
var max = this.$editor.next().attr("maxlength");
if (typeof max !== "undefined" && max > 0) {
var html = this.get();
var current = html.length;
var remaining = max - current;
this.$box.append($("<div class='indicator' style='position:absolute;z-index:30;top:7px;right:7px;'><span class='current'>" + remaining + "</span> of <span class='max'>" + max + "</span> characters remaining</div>"));
}
},
changeCallback: function (event) {
var max = this.$editor.next().attr("maxlength");
if (typeof max !== "undefined" && max > 0) {
var html = this.get();
var current = html.length;
var remaining = max - current;
var $indicator = $(".indicator", this.$box);
$(".current", $indicator).text(remaining);
$(".max", $indicator).text(max);
if (current >= max) {
this.$box.css("border", "1px solid #ff0000");
$indicator.css("color", "#ff0000");
} else {
this.$box.css("border", "1px solid #DDDDDD");
$indicator.css("color", "#000000");
}
}
}
});
关于javascript - 如何显示 Redactor 富文本/html 编辑器的字符数/字数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12423045/
我的意思是这三个富人的论点: #{rich:clientId('id')} #{rich:element('id')} #{rich:component('id')} 例如在这些方法调用(action
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What are the differences between pointer variable and
对于实习,我将不得不开发一个桌面应用程序。重点是创建丰富的 UI(酷炫的效果、声音等)。我应该使用哪种技术? - 闪光 ? (在这种情况下,我应该使用 flex 项目吗?AIR ?这和一个简单的 ra
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我想知道这一行的作用: foo || (foo = this.foo) 在下面的函数定义中 someFunction: function(foo) { foo || (foo = thi
我有一个数据模型,其中有一个 Item可以属于一个或多个 Categories .我正在尝试显示 允许用户选择哪个Categories Item应该属于。我正在使用 RichFaces 和 Seam
我意识到我大部分时间都在使用三元运算符,如下所示: foo ? foo:酒吧; 这变得很麻烦,因为变量长度变得很长,例如。克。 appModel.settings.notifications ? ap
我要做出一个设计决定。 在我的 web(ajax) 应用程序中,我们需要决定将用户界面逻辑放在哪里? 是否应该通过 javascript 完全加载(纯单页)。只有数据来来去去。 或 服务器是否应该发送
有人向我指出我在某些 C++ 代码中有一个看起来像拼写错误的地方: protected: Foo x, y,; 我原以为结尾的逗号会出错,但显然不是?这是未定义的,还是发生了什么?大概是坏事
谁能解释一下这是做什么的? var foo = foo || alert(foo); 最佳答案 如果 foo 已经被定义并且计算结果为真,它设置 foo = foo,即它什么都不做。 如果定义了 fo
看起来这应该是可能的,但是......? 使用 richfaces 和 JSF,我正在使用 rich:dataList 遍历 List ...一切都很好,除了我希望能够选择性地“呈现”每次迭代,这可能
我有以下带有 rich:calendar 的 xhtml 文件,我正试图禁用一些日子 using this example .但是永远不会调用 javascript 函数。我不知道为什么。
我的应用程序在 90% 的时间里都使用 Ajax 调用来获取后端数据。我需要为所有这些调用实现 CSRF 预防。所以我需要在每次调用时传递 token 。我在哪里生成 token ?在客户端还是服务器
我正在尝试重构和引入一些旧代码,我遇到了这样的事情: struct foo; typedef struct foo * foo; 尝试编译它时,出现以下错误: Sourc
我想使用类似 TextView 的东西进行类似串行/TTY/文本终端的同步用户交互。我的意思是我需要以下操作: 在末尾添加一些新文本(使用各种 Span 设置样式) 同步等待用户在最后输入一些进一步的
片段 1: if ( x ) { foo(); } 片段 2: x ? foo() : 0; 这两个片段之间有什么区别? 编辑:更正了语法错误。 更新:顺便说一句,似乎还有一个更短的符号:
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 7 年前。 我的类实现了一个非常简单的 RPN 计算器原型(prototype)。
我正在我的元素中使用,我需要为其自定义 CSS。我想在文件上传按钮中删除“+”标记(参见图片),我该怎么做? 提前致谢。 最佳答案 只是覆盖样式,按钮类是rf-fu-btn-cnt-add,加号是背景
我在 jsf .xhtml 页面中有一个 richdatatable。我有一个特定单元格的很长的文本。我如何设置列的宽度并在指定的单元格中显示文本。我是 JSF 和 CSS 的新手。我正在提供一个例子
我是一名优秀的程序员,十分优秀!