所见即所得,可以限制文本/高度

发布于 2024-12-07 15:01:11 字数 277 浏览 0 评论 0原文

好的,所以我尝试了tinyMCE。

在没有运气和对如何限制编辑器内容进行了大量研究之后,我正在寻找其他替代方案。

这些是所见即所得的需求:

  • 能够具有这些功能/按钮:粗体、斜体、下划线、牛列表、表格控件
  • 能够限制输入。如果我将编辑器设置为 300 宽 x 500 高,并且您输入的内容超过该高度,则它不应该应用滚动条,并且您应该无法编写更多内容。
  • 可以在一页内设置多个编辑器

哪个所见即所得的编辑器可以满足我的需求?

Ok, so I tried out tinyMCE.

After no luck and a lot of research on how to limit the editors content, I'm looking for other alternatives.

These are the needs for the WYSIWYG:

  • Able to have these function/buttons: bold,italic,underline,bull list, table controls
  • Able to limit the input. If I set the editor to 300 width x 500 height, and you type more than the height, it should NOT apply a scroller and you should be unable to write more.
  • Able to set multiple editors in one page

Which WYSIWYG editor can fill my needs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我一向站在原地 2024-12-14 15:01:12

一种简单的方法是使用 div 元素并将编辑器的内容放入该 div 中。 div 应该设置宽度(使用 css)。

<div class="calculation_preview"></div>

CSS 应该类似于:

div.calculation_preview {
   width: 200px;
   visibility: hidden;
   position: absolute;
   top: 0px;
   left:0px;
}

每次击键后,您可以测量 div 的高度(使用 div 上的函数 offsetHeight)。
如果太高,请删除用户输入的最后一个字符。

要恢复以前的内容,您可以声明一个 javascript 变量,例如:

var savedContent = "";

如果编辑器中有一些初始内容,那么您应该使用该内容初始化该变量。
对于每次击键,您执行以下操作:

// Get current editor content:
var content = tinyMCE.activeEditor.getContent({format : 'raw'});
// Measure the new height of the content:
var measurer = document.getElementById("calculation_preview");
measurer.innerHTML = content;
if(measurer.offsetHeight > 100) {
   // Content is too big.. restore previous:
   tinyMCE.activeEditor.setContent(savedContent, {format : 'raw'});
} else {
   // Content height is ok .. save to variable:
   savedContent = content;
}

A simple approach would be to use a div element and put the content of the editor inside that div. The div should have set a width (using css).

<div class="calculation_preview"></div>

And the css should be something like:

div.calculation_preview {
   width: 200px;
   visibility: hidden;
   position: absolute;
   top: 0px;
   left:0px;
}

After each key-stroke, you can measure the height of the div (using the function offsetHeight on the div).
If it is too height, remove the last character the user entered.

To restore the previous content, you can declare a javascript variable as for example:

var savedContent = "";

If you have some initial content in your editor, then you should initialize the variable with that content.
For each key-stroke, you do the following:

// Get current editor content:
var content = tinyMCE.activeEditor.getContent({format : 'raw'});
// Measure the new height of the content:
var measurer = document.getElementById("calculation_preview");
measurer.innerHTML = content;
if(measurer.offsetHeight > 100) {
   // Content is too big.. restore previous:
   tinyMCE.activeEditor.setContent(savedContent, {format : 'raw'});
} else {
   // Content height is ok .. save to variable:
   savedContent = content;
}
栩栩如生 2024-12-14 15:01:12

TinyMCE 或 ck 编辑器应该可以满足您的需求。

关于滚动问题,尝试使用jquery和keypress事件来测试持有编辑器的div中内容的长度。您还可以将其与屏幕上的字符计数器结合起来,以动态显示用户还剩多少个字符。

charCount = $(this).val().length;

TinyMCE or ck editor should meet your needs.

Regarding the scroll issue, try using jquery and the keypress event along to test the length of the content in the div holding the editor. You could also combine this with a character counter on the screen to dynamically display how many characters a user has left.

charCount = $(this).val().length;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文