Attributes:
someValue = element.getAttribute("someAttribute");Properties:
element.setAttribute("someAttribute", someValue);
someValue = element.someProperty;答案是: 界面会显示"First value",但你用text.getAttribute("value")会取到"Second Value"(或者用DOM Inspector可以看到)。
element.someProperty = someValue;
前者是按DOM的思路的,而后者是将XUL Element抽象成对象了。但两者是等价的么?如果下两句话一块儿执行,会是怎样的结果?
textbox.value = "First value";
textbox.setAttribute("value", "Second value");
所以这两个东西还是有点不一样。但你在.xul文件里面设置的attribute怎么能直接反映到界面中? 反正比较复杂。 详细的说明可以看这篇文章:
XUL Solutions: Attributes and properties: the essential difference
基本上是说在用代码操纵时最好用properties,但在XBL中就得注意了。
我还注意到其它一些小差别:
1. 有些attribute没有对应的property,反过来也是;
2. attribute和property可能存在一些大小写的差别,比如tabindex和tabIndex。一般而言attribute倾向于contextmenu或者wait-cursor这样的风格,而property倾向于contextMenu。但也不是绝对的(比如sortDirection这个attribute), XUL里面这个有点混乱;
没有评论:
发表评论