在Vaadin Page中有没有办法删除动态添加的样式? 我有一个css开关,它是用组合框实现的,因此用户可以选择特定的样式。当样式改变时,我使用以下方法添加新样式:
getPage().getStyles().add("some css");
但是,当用户再次更改样式时,它会添加另一个“样式”元素。我找不到删除旧“样式”节点的方法。类:
public static class Styles implements Serializable
来自包裹:
package com.vaadin.server;
没有提供任何方法来做到这一点。有没有解决方案?
修改
我能够通过解决方法解决这个问题。将样式更改为新样式后(添加了新的“样式”标记)我将使用javascript删除旧样式:
getPage().getJavaScript().execute(REMOVE_OLD_STYLE_SCRIPT);
此脚本始终删除索引为[1]的“style”标记(index [0]从css文件添加了样式,我不想删除它。)
if (document.getElementsByTagName('style').length > 2) {
document.getElementsByTagName('style')[1].remove()
}
说实话 - 它有效,但我不喜欢这个解决方案。正如我所说 - 这是一个workaroud,在我看来应该有这样的功能,使用Vaadin类删除一些动态样式。