【发布时间】:2014-08-09 18:46:08
【问题描述】:
我有一个用 GWT 编写的网站。我需要通过单击该元素来更改某些元素的样式。我正在使用这样的代码:
image.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
...............
Element element = ((Image) event.getSource()).getElement();
element.setClassName("new_css_class_to_be_applied");
}
'setClassName' GWT 函数使用 className JavaScript 属性对类进行操作:
public final native void setClassName(String className) /*-{
this.className = className;
}-*/;
这段代码更改了元素的类名(我可以在 DOM 检查器中看到新的类名),但该类中的样式不适用于元素。
此问题仅出现在 Windows 的 Chrome 浏览器中,IE 和 Firefox 运行良好。
如果我使用 Chrome 本地设置 ( C:\Users\User_name\AppData\Local\Google\Chrome\ ) 移动文件夹,此问题就会消失,并且样式更改开始正常工作。但是,如果我返回以前的 chrome 设置文件夹,则此代码将不再起作用。我在 Chrome 中没有任何特定设置或插件,一切都是默认设置。
这似乎是 Chrome 浏览器中的一个错误,但我没有找到如何重现它的具体先决条件。我用谷歌搜索但没有发现相同的问题和解决方案。
有人能建议我解决这个问题吗?
UPD。这是 AdBlock Chrome 扩展的问题。我禁用了它,问题就消失了。更多细节:https://code.google.com/p/chromium/issues/detail?id=377913
【问题讨论】:
-
因为它看起来确实像 Chrome 错误,我建议在 crbug.com 提交问题
标签: javascript css google-chrome dom gwt