java - 是否可以计算 HTML 格式文件中可见文本的行数?

标签 java html wicket

我们有一个表单,可以让人们输入 html 格式的文本,然后该输入会显示在网页的其他位置。

由于布局限制,输入的长度可能不会超过 X 行。网页中没有编辑后的文本预览。提交后的输入将立即发布。 (简短解释为什么我无法修复布局:有问题的文本显示为图像上方的覆盖层。覆盖层的大小约为图像的大小,并且是固定的。文本应该在覆盖层内完全可见,并且不应溢出结束。)

我被要求实现一些措施来防止人们输入太多文本。

我的第一次尝试是“maxLength”,但由于输入可能采用 html 格式而出错。

除了明显的两个 1. 期望用户聪明和/或 2. 实现预览方法之外,我们还能如何解决这个问题?

我没有主意,我也会接受为什么这是不可能的解释

使用的技术:java、wicket 1.4.x

最佳答案

我不是网络开发专家,因此这可能不是一个足够精确的答案。

使用 javascript,一旦 HTML 元素在浏览器中呈现,您就可以获得该元素的有效大小。因此,一种解决方案可能是在服务器端渲染页面,并检查结果是否超出您预期的大小。

但这可能无法保证正确的结果,因为服务器呈现的页面可能与客户端不同。您也可以始终接受输入,然后当客户端呈现页面时,使用一段 javascript 来检查(这次是客户端)呈现的结果是否正常。如果不是,那么让 javascript 将客户端重定向到错误页面,以便它可以编辑他的输入。

但是,我要做的是更改布局,以便在用户输入太多文本时不会出现任何中断。使用 CSS 溢出属性可能是一个开始。您还可以在 JavaScript 中实现更好的解决方案,例如动态更改文本大小,直到它适合您想要的大小。

关于java - 是否可以计算 HTML 格式文件中可见文本的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380394/

相关文章:

java - 如何在 Wicket 框架中禁用 ajaxfallbacklink 上的右键单击事件?

java - Wicket 表格和后退按钮问题

java - 如何在 Android 中将 pdf 附加到发送 Intent (发送到电子邮件、保管箱等)

c# - Asp.net 或 Silverlight 中的语法荧光笔

java - 添加删除链接到 ListView - 如何从内部匿名类引用外部匿名类

html - 在一个轴上将元素与父元素的父元素对齐?

html - 条件注释真的可行吗?它是如何工作的?

c# - 为什么相同的方法每次运行时间不同?

java - 将线程注册到 Phaser

javascript - Html 节点内的信息不可见