Chr*_*ell 8 java gwt dom element
我不能确定之间的差异Element.setAttribute(String name, String value)和Element.setPropertyString(String name, String value).有区别吗?尝试在文本输入上设置占位符时,首选哪个?我一直在做getElement().setPropertyString("placeholder", "this is a placeholder");,它的工作原理,但这是适当的方式吗?
在DOM的文档中,setAttribute(Element, String, String)不推荐使用"更恰当的名称setElementProperty(Element, String, String)".这是否意味着应该使用类似命名的方法Element?
属性和属性之间存在差异.简而言之,属性表示初始状态,而属性始终表示当前状态.
有关详细说明,请参阅http://jquery-howto.blogspot.com/2011/06/html-difference-between-attribute-and.html.
在GWT中,setAttribute在当前元素上调用本机javascript函数setAttribute.调用setProperty ...在当前元素上设置属性.
在过去,这在大多数浏览器中都是相同的,但随着标准的不断发展,这种情况开始发生变化.
我真的不知道浏览器实现之间的所有细微差别,但要跟踪差异,可以依赖于不同的DOM级别规范:http://www.w3.org/TR/DOM-Level-2-HTML/ http ://www.w3.org/TR/DOM-Level-3-Core/
另外MoAilla文档在setAttribute上也很有用,并说明firefox的区别:https://developer.mozilla.org/en/DOM/element.setAttribute
总结一下:如果你在GWT中使用setAttribute你依赖于浏览器setAttribute实现,它有点设置defualt值(在某些属性上,而不是更新值),所以通常你想要setProperty ...
问题是在IE6和IE7(以及兼容模式下的IE8)中,setAttribute实际上设置了属性(IE并没有真正有所作为; IE8添加了一个可选参数,getAttribute以允许检索DOM规范中定义的属性;请参阅http ://msdn.microsoft.com/en-us/library/ms536429v=vs.85.aspx).
顺便说一句,您的JavaDoc参考应该是http://google-web-toolkit.googlecode.com/svn/javadoc/latest/index.html(不是GWT 1.5的那个,这是严重过时的),你应该使用com.google.gwt.dom.client.Element而不是com.google.gwt.user.client.DOM.Element有一个setAttribute在IE6/7以外的每个浏览器中设置属性(或IE8的类似模式).
但大部分时间,您应该只使用DOM属性而不是属性.例如,您希望将tab index数字作为数字而不是字符串.而你要为一个属性的默认值/状态在没有属性,而不是一个null,你不得不自己处理(例如input元素的缺省值type=text时,有没有type属性; getAttribute("type")将返回null,而getPropertyString("type")将返回"text").
| 归档时间: |
|
| 查看次数: |
9882 次 |
| 最近记录: |