Firefox addon 当使用FirefoxSDK在小部件的面板上单击select元素时,如何防止面板滑出视图

Firefox addon 当使用FirefoxSDK在小部件的面板上单击select元素时,如何防止面板滑出视图,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我已经为此挣扎了一天多了,大部分时间都花在了SO和Google上,寻找解决方案,并尝试了各种各样的事情 我正在使用SDK 1.14并在Firefox 23上进行测试。我有一个有面板的小部件。面板的contentURL是数据目录中的本地HTML文件。当在HTML中放置一个select元素并且用户单击该元素时,整个面板(或至少其内容)将从仍位于屏幕左下角的面板移到浏览器窗口的左上角。我可以看出,面板(或至少其内容)移动到浏览器窗口的左上角,因为选项显示在那里。我假定在单击select元素时,它绑定到

我已经为此挣扎了一天多了,大部分时间都花在了SO和Google上,寻找解决方案,并尝试了各种各样的事情

我正在使用SDK 1.14并在Firefox 23上进行测试。我有一个有面板的小部件。面板的contentURL是数据目录中的本地HTML文件。当在HTML中放置一个select元素并且用户单击该元素时,整个面板(或至少其内容)将从仍位于屏幕左下角的面板移到浏览器窗口的左上角。我可以看出,面板(或至少其内容)移动到浏览器窗口的左上角,因为选项显示在那里。我假定在单击select元素时,它绑定到浏览器窗口的原点

作为一个测试,我将它减少到一个小部件和一个带有select元素的面板的最小值。main.js代码是:

exports.main = function () {
    var self = require('self'),
        testPanel = require('panel').Panel({
            contentURL: self.data.url('test.html')
        });

    require('widget').Widget({
        label: 'Test Panel',
        id: 'TestPanel',
        panel: testPanel,
        contentURL: self.data.url('images/icon_16.png')
    });
};
HTML是:

<!DOCTYPE html>
<html>
<body>
    <select>
        <option value='1'>1</option>
    </select>
</body>
</html>

1.

当HTML最初加载时,选择元素将正确显示在小部件的面板中。单击“选择”元素时,选项元素将向上移动到浏览器窗口的左上角。当面板关闭并随后使用小部件图标重新打开时,面板内容的位置不会重置。

只是为了不让它在注释中丢失:这是一个已知的错误,即。有人告诉我,因为这已经被标记为P1(优先级1),“它应该在列表中处于非常高的位置”。 个人经验告诉我,这不太可能在Firefox 23点版本中得到修复(如果有的话)。也许它会在Firefox24中修复,也许更晚


除了使用一些html UI库来模拟下拉菜单(当使用
时,下拉菜单实际上是操作系统级的子窗口,但当使用html时,下拉菜单就不是了),我想不出什么真正的解决办法了。网络上有很多这样的实现。

看起来像个bug@我不确定这是Firefox还是SDK的错误。一些附加信息。。。它似乎是任何面板,无论它是否连接到小部件。另外,我已经更新到Firefox24,问题仍然存在。更多信息。。。因此,它似乎没有改变相对于Firefox窗口的原点,而是改变了相对于桌面的原点。如果我将Firefox窗口移动到第二个显示器并重复上面的步骤,浮动选项将显示在与桌面相对的同一空间中,而不是Firefox窗口。我让一个同事在他的机器上测试我的xpi。我无法想象这个“bug”会被忽略,这意味着没有人能够在任何面板上放置select元素。这让我相信它对我来说是本地的,但我们会看到的。似乎是一个带有弹出窗口的位置错误。只需向SDK人员提交一个bug,并提供简化的测试用例。他们要么修复它,要么将其移动到适当的组件。因此,它似乎已经作为提交。当我试图将其作为一个可能的类似问题提交时,它出现了。