我知道pydom已被弃用。但我的应用程序已经使用了这个,这很容易
我的xul是这样的。
<menulist name="mailencode" id="mailencode">
<menupopup id="mailencodepop">
<menuitem label="UTF-8" value="UTF-8" selected="true"/>
<menuitem label="ISO-8859-1" value="ISO-8859-1" />
</menupopup>
</menulist>
在我的python脚本中
ecd=document.getElementById("mailencode")
print ecd.selectedIndex
有一个例外,告诉我XPCOM组件''没有属性selectedIndex
我想在menulist中使用select值
我也厌倦了,但同样的例外
ecd=document.getElementById("mailencodepop")
print ecd.selectedIndex
任何想法? 感谢
答案 0 :(得分:0)
你的第一个问题是你所追求的标签名称是“menulist”。我使用xml.dom.minidom
解析这个作为一个基本的例子来说明,因为我从未使用过PyDOM:
>>> ecd = document.getElementsByTagName('menulist')
[<DOM Element: menulist at 0x1006e2710>]
>>> ecd[0].tagName
u'menulist'
>>> ecd[0].attributes.items()
[(u'name', u'mailencode'), (u'id', u'mailencode')]
然后自己拔出menulist标签,然后检查其子节点:
>>> menulist = ecd[0]
>>> menulist.childNodes
[<DOM Text node "u'\n '">, <DOM Element: menupopup at 0x1006e29e0>, <DOM Text node "u'\n '">]
然后检查menupop
标记的子节点:
>>> menulist.childNodes[1]
<DOM Element: menupopup at 0x1006e29e0>
>>> menulist.childNodes[1].childNodes
[<DOM Text node "u'\n '">, <DOM Element: menuitem at 0x1006e2b90>, <DOM Text node "u'\n '">, <DOM Element: menuitem at 0x1006e2ef0>, <DOM Text node "u'\n '">]
可能有更好的方法,特别是使用PyDOM的方法。我只是想说明你需要注意你所追求的标签名称。
答案 1 :(得分:0)
selectedIndex
属性是通过XBL实现的,我不知道pydom是否可以与XBL对话。您可以致电QueryInterface
来公开nsIDOMXULMenuListElement
界面吗?