2

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 标记显示为空???

4

0 回答 0