GWT 的 RichTextArea 没有使其成为“只读”的方法。有一个 setEnabled() 方法,但是如果你调用 setEnabled(false),它就不起作用。
我正在尝试解决此问题的方法。我的想法是用 HTML 小部件替换此行为的 RichTextArea。
问题是,如果我使用 HTML 小部件来设置原始 RichTextArea 的内容,它将受到我的 Web 应用程序的所有样式的影响。
RichTextArea 实现了这一点,将内容包装在 IFrame 中。
所以我试图模仿它,做这样的事情:
public class RichTextAreaReadOnly extends Composite
{
protected HTML instance;
public RichTextAreaReadOnly()
{
this.instance = new HTML();
this.initWidget(this.instance);
}
public void setHTML(String html)
{
this.instance.setHTML("<iframe class=\"gwt-RichTextAreaReadOnly\">"
+ "<html>"
+ "<head></head>"
+ "<body>"
+ html
+ "</body>"
+ "</html>"
+ "</iframe>");
}
}
问题是,由于某种奇怪的原因,身体看起来是空的。
如果我试试这个:
public void setHTML(String html)
{
this.instance.setHTML("<html>"
+ "<head></head>"
+ "<body>"
+ html
+ "</body>"
+ "</html>");
}
(注意:没有 iframe 标签)
它可以工作,但样式不正确,因为它受到不应有的样式的影响。
知道为什么当我使用 HTML.setHTML() 创建 IFrame 时,body 标记显示为空???