XUL:动态创建菜单项并设置“选定”菜单项属性

发布于 2024-09-03 03:34:09 字数 474 浏览 9 评论 0原文

我有一个 Firefox 扩展选项首选项面板,我应该在其中动态创建菜单项并选择当前的特定项目。

这是 XUL 文件部分

<menulist id="rss_service_combo">
    <menupopup id="rss_service_menu"/>
</menulist>

然后在 pref 面板的 load 事件中,使用 js 将 menuitem 元素附加到 menupop 中。这工作正常。唯一的问题是,即使我设置了 selected 元素,该项目也不会被选中,并且组合框最初为空。

目前唯一可行的方法是,如果我手动将这些 menuitem 添加到 XUL 文件中并设置 selected 属性,但我需要动态执行此操作。

I have a firefox extension Options pref panel, where I should dynamically create menu items and select particular item to be current.

here is the XUL file part

<menulist id="rss_service_combo">
    <menupopup id="rss_service_menu"/>
</menulist>

Then in load event of the pref panel, using js I append menuitem elements into menupop. This is working fine. The only problem is that even if I set the selected element the item is not selected and combo box is initially empty.

The only way is working at the moment is if I manually add those menuitems into XUL file and set selected attribute, but I need to do it dynamically.

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

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

发布评论

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

评论(1

悍妇囚夫 2024-09-10 03:34:09

您可能正在寻找 selectedIndex属性。下面是一些动态添加菜单项的示例代码:

// In a for loop...
var menuItem = document.createElement("menuitem");
menuItem.setAttribute("oncommand", "alert('Hi!');");
menuItem.setAttribute("label", basename);
aMenu.appendChild(menuItem);

You are probably looking for the selectedIndex attribute. Here's some sample code for adding menu items dynamically:

// In a for loop...
var menuItem = document.createElement("menuitem");
menuItem.setAttribute("oncommand", "alert('Hi!');");
menuItem.setAttribute("label", basename);
aMenu.appendChild(menuItem);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文