在GWT RichTextArea头部插入css样式表
是否可以将样式表注入GWT RichTextArea的头部在GWT RichTextArea头部插入css样式表,gwt,stylesheet,Gwt,Stylesheet,是否可以将样式表注入GWT RichTextArea的头部 似乎我在正文中放置了一个样式元素,某些浏览器(如IE7)允许用户删除节点。是的。但是您需要一个类似于操作dom的库,或者编写一些jsni代码 我更喜欢gquery,因为它简单,而且可以与所有浏览器一起使用 import static com.google.gwt.query.client.GQuery.*; //首先将小部件附加到DOM RootPanel.get().add(richTextArea); //我们只能在创建ifra
似乎我在正文中放置了一个样式元素,某些浏览器(如IE7)允许用户删除节点。是的。但是您需要一个类似于操作dom的库,或者编写一些jsni代码
- 我更喜欢gquery,因为它简单,而且可以与所有浏览器一起使用
import static com.google.gwt.query.client.GQuery.*;
//首先将小部件附加到DOM
RootPanel.get().add(richTextArea);
//我们只能在创建iframe文档后操纵头部,
//这是在它被连接之后发生的。
//因为richtTextArea使用超时来初始化,所以我们需要一个延迟。
$(richTextArea)。延迟(1,
懒惰的
.contents()
.find(“head”)
.append(“正文{背景:红色}”)
.done());
- 使用GWT+JSNI,您必须执行以下操作(但并非在所有浏览器中都测试):
//首先将小部件附加到DOM
RootPanel.get().add(richTextArea);
//我们只能在创建iframe文档后操纵头部,
//这是在它被连接之后发生的。
//使用计时器,因为richtTextArea使用超时进行初始化。
Timer insertCss=新计时器(){
私有本机元素getHeadElement(元素iframe)/*-{
返回iframe.contentWindow.document.head;
}-*/;
公开募捐{
元素头=getHeadElement(richTextArea.getElement());
元素样式=DOM.createElement(“样式”);
setInnerText(“主体{背景:黄色}”);
头。附属物(样式);
}
};
//定时
插入附表(1);
如果您不想使用CSS文件,可以直接插入CSS。据我所知,它被放在了头上,但是对于整个文档。我也有同样的问题,下面是添加到类构造函数中的解决方案:
richTextArea.addInitializeHandler(new InitializeHandler() {
public void onInitialize(InitializeEvent ie) {
document = IFrameElement.as(richTextArea.getElement()).getContentDocument();
StyleElement se = document.createStyleElement();
se.setType("text/css");
se.setInnerHTML("some CSS");
BodyElement body = document.getBody();
body.getParentNode().getChild(0).appendChild(se);
}
});
为什么不使用一个单独的CSS文件来设计样式呢?这似乎是一种非常有力的方法,因为用于样式设置的seOperate文件不起作用,因为它位于iframe中