2

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

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

小部件图标 小部件面板 浮动选项

作为一个测试,我将它减少到最小的一个 Widget 和 Panel 与一个选择元素。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>

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

4

1 回答 1

2

只是这样它就不会在评论中丢失:这是一个已知的错误,即Bug 886329。有人告诉我,由于这已经被标记为 P1(优先级 1),“它应该在列表中非常靠前”。个人经验告诉我这不太可能在 Firefox 23 点版本中得到修复(如果有的话)。也许它会在 Firefox 24 中修复,甚至可能更晚......

<select>除了使用一些 html UI 库来模拟下拉菜单(使用时实际上是操作系统级别的子窗口,但在使用 html 时不是)之外,我没有想到真正的解决方法。网上有很多这样的实现。

于 2013-08-15T23:44:07.573 回答