RTF域HTML显示问题

本文探讨了在B/S系统中处理大量HTML数据的四种方法,包括使用不同方式展示itemStorage中的HTML内容,并分析了每种方法的优势与不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做B/S系统,总会遇到诸如图文混排,文本格式设定之类的需求。平时一般使用DHTML编辑器生成HTML代码,使用rtf域(itemStorage)存储这些HTML代码,使用rtf计算域(itemDisplay)来显示itemStorage的内容。前些日子发现在存储信息量非常大的情况下,HTML的显示会出现问题。于是便有了下面解决问题的尝试。

[ Method 1 ]

...
itemDisplay.values = itemStorage.getUnformatedText()
...

itemDisplay域内置HTML。

此时可以正确显示HTML样式,但itemStorage存储的数据量大时内容将被截断。类似于使用计算文本显示时itemStorage内容时的情况。

[ Method 2 ]

...
itemDisplay = itemStorage.getUnformatedText()
...

itemDisplay域内置HTML。

此时显示出HTML代码,不能正确显示HTML样式,而且数据量大时内容被截断。

[ Method 3 ]

...
itemDisplay.appendText( itemStorage.getUnformatedText() )
...

此时显示出HTML代码,不能正确显示HTML样式,但是数据量大时内容不会被截断。如果先为itemDisplay设置style.passThruHTML = True,则可以显示正确的HTML样式且内容不会被截断。

[ Method 4 ]

...
itemDisplay.appendText( "[" & itemStorage.getFormatedText(False, 0) & "]")
...

此时不必加入style即可显示正确的HTML样式,且数据量大时内容不会被截断。很奇怪的是,“[”与“]”必须写在一行,类似以下的代码无法生效。

...
itemDisplay.appendText("[")
itemDisplay.appendText( itemStorage.getFormatedText(False, 0))
itemDisplay.appendText("]")
...

另外在测试中发现,在后两种情况下,如果存储域itemStorage设置为“保存内容为HTML和MIME”,则会出现比较灵异的现象——在正确的HTML样式前会多显示一些(不是所有)HTML代码,还真是应了以前坛子里一位兄弟的话“Lotus有时候比较妖怪”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值