RTF域HTML顯示問題

做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有時候比較妖怪”。

發佈了24 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章