java - GWT 元素 setAttribute 与 setPropertyString

标签 java gwt dom element

我无法确定 Element.setAttribute(String name, String value)Element.setPropertyString(String name, String value) 之间的区别。有区别吗?尝试在文本输入上设置占位符时首选哪个?我一直在做 getElement().setPropertyString("placeholder", "this is a placeholder"); 并且它有效,但这是正确的方法吗?

documentation for DOM , setAttribute(Element, String, String) 已弃用,表示使用“更恰当命名的 setElementProperty(Element, String, String) 代替。”这是否意味着应该使用 Element 的类似命名方法?

最佳答案

Attributes 和 Properties 是有区别的。简而言之,属性表示初始状态,而属性始终表示当前状态。

参见 http://jquery-howto.blogspot.com/2011/06/html-difference-between-attribute-and.html详细解释。

在 GWT 中,调用 setAttribute 会在当前元素上调用 native javascript 函数 setAttribute。调用 setProperty... 设置当前元素的属性。

过去,在大多数浏览器中,这曾经是相同的,但随着标准的发展,这开始发生变化。

我真的不知道浏览器实现之间的所有细微差异,但要跟踪差异,可以依赖不同的 DOM 级别规范:http://www.w3.org/TR/DOM-Level-2-HTML/ http://www.w3.org/TR/DOM-Level-3-Core/

此外,关于 setAttribute 的 Mozilla 文档也可以说明 firefox 的不同之处:https://developer.mozilla.org/en/DOM/element.setAttribute

所以总而言之:如果你在 GWT 中使用 setAttribute,你依赖于浏览器 setAttribute 实现,它在某种程度上设置了默认值(在某些属性上,而不是更新值),所以通常你需要 setProperty...

关于java - GWT 元素 setAttribute 与 setPropertyString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590302/

相关文章:

java - Java面板或对话框中的持续更新

c# - IEnumerable<char> 的 Java 等效项

java - Ant - 没有公共(public)执行()错误,即使它存在

java - SimpleDateFormat 和 parseException

jquery - 无法通过jquery获取ajax加载图像的高度和宽度

JavaScript IF 语句错误地评估 TRUE - 为什么?

javascript - libxmljs 的替代品

java - 如何在 Kotlin 中创建一个在 Java 中也是不可变列表的不可变列表?

java - 使用 GWT 显示 PDF 内容

python - 带 python Web 服务器的 Gwt 前端