pydom 的 xul 菜单列表错误

发布于 2024-11-04 06:17:28 字数 676 浏览 2 评论 0原文

我知道 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

我想获得菜单列表中的使用选择值

我也厌倦了这个,但同样的例外

ecd=document.getElementById("mailencodepop")
print  ecd.selectedIndex

你知道吗? 谢谢

i know pydom is deprecated .but my application already used this,this is so easy

my xul is like this.

<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>

in my python script

ecd=document.getElementById("mailencode")
print  ecd.selectedIndex

there is a exception,show me XPCOM component '' has no attribute selectedIndex

i want get the use select value in the menulist

i also tired this,but the same exception

ecd=document.getElementById("mailencodepop")
print  ecd.selectedIndex

any idea?
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等往事风中吹 2024-11-11 06:17:28

您的第一个问题是您想要的标签名称是“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 的方法。我只是想说明您需要小心您所追求的标签名称。

Your first problem is that the tag name you're after is "menulist". I used xml.dom.minidom to parse this just as a basic example to illustrate because I have never used 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')]

Then pull out the menulist tag on its own and then inspect its child nodes:

>>> menulist = ecd[0]
>>> menulist.childNodes
[<DOM Text node "u'\n     '">, <DOM Element: menupopup at 0x1006e29e0>, <DOM Text node "u'\n    '">]

And then inspect the menupop tag's child nodes:

>>> 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     '">]

There might be a better way, especially one using PyDOM. I just wanted to illustrate you need to be careful about the tag names you're after.

如痴如狂 2024-11-11 06:17:28

selectedIndex属性是通过XBL实现的,我不知道pydom是否可以与XBL对话。您可以调用QueryInterface来公开nsIDOMXULMenuListElement接口吗?

The selectedIndex attribute is implemented through XBL, and I don't know whether pydom can talk to XBL. Can you call QueryInterface to expose the nsIDOMXULMenuListElement interface?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文