在iOS8 / Safari中错误放置了Dojo Mobile ComboBox下拉列表

时间:2014-11-13 01:31:30

标签: javascript dojo ios8 mobile-safari dojox.mobile

在使用iOS 8的iPad上拔出我的Dojo Mobile应用程序时,ComboBox下拉列表无法正确放置。我的ComboBox非常接近屏幕的底部(在没有滚动的单页面应用程序中),因此下拉列表几乎总是出现在CombBox上方。它在我测试的除iPad上的Safari之外的所有浏览器/设备中都可以。在那里,它总是出现在ComboBox下面并滚动屏幕上的所有其他内容。

为了确认这不是我的应用程序的问题,我在iPad上打开了dojox / mobile ComboBox测试,它们的行为方式相同。特别是,dojox/mobile/tests/test_ComboBox-widepage.html表现得最好。我的ComboBox上禁用了文本输入(以防止屏幕设备键盘出现),您可以通过添加以下内容在测试页面中复制它:

ready(function () {
    domAttr.set(registry.byId('dropDown').textbox, 'readOnly', true);               
});

我真的不知道从哪里开始寻找解决方案。 ComboBox.js中的任何内容看起来都不对,这是有道理的,因为它几乎无处不在。有没有我可以实施的快速解决方案,或者我必须将此报告为错误并等待修复?

修改:添加了屏幕截图。这些都是dojox/mobile/tests/test_ComboBox-widepage.html。点击查看全尺寸。

1 个答案:

答案 0 :(得分:2)

据我所见,这似乎与https://bugs.dojotoolkit.org/ticket/18317涵盖的问题相同。该修补程序已在存储库的主服务器中可用,并将在1.10.3中提供。您可能希望测试一下此修复程序(https://github.com/dojo/dojox/commit/86d34bcd9b6b11bf23a1ed080398a8067a4b349c)。

那就是说,我认为本身并不认为打开ComboBox下拉列表时页面滚动的事实可以被视为缺陷,也不认为下拉列表显示在顶部或底部的事实输入元素。作为上述解决方案的替代方案,您可能希望查看是否添加 registry.byId('dropDown').set("dropDownPosition", ["above"]); 更符合您的需求。