Dojo Mobile ComboBox 下拉菜单在 iOS8/Safari 中错位
Posted
技术标签:
【中文标题】Dojo Mobile ComboBox 下拉菜单在 iOS8/Safari 中错位【英文标题】:Dojo Mobile ComboBox dropdown misplaced in iOS8/Safari 【发布时间】:2014-11-13 01:31:30 【问题描述】:在装有 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
。点击查看它们的全尺寸。
【问题讨论】:
我应该补充一点,我使用的是 Dojo 1.10.2。 可以附上截图吗?? 上面添加的截图。 【参考方案1】:据我所知,这似乎与https://bugs.dojotoolkit.org/ticket/18317 涵盖的问题相同。该修复程序已在存储库的 master 中可用,并将在 1.10.3 中可用。您可能想在您身边测试修复 (https://github.com/dojo/dojox/commit/86d34bcd9b6b11bf23a1ed080398a8067a4b349c)。
也就是说,我不认为,当打开 ComboBox 的下拉菜单时页面滚动的事实本身可以被视为缺陷,也不能认为下拉菜单显示在顶部或底部的事实输入元素。作为上述解决方案的替代方案,您可能想查看是否添加
registry.byId('dropDown').set("dropDownPosition", ["above"]);
更适合您的需求。
【讨论】:
感谢您对此进行调查和回复。将在 1.10.3 中发布的修复成功了。我之前曾尝试将dropDownPosition
显式设置为'above'
,但不幸的是,它只是将下拉菜单放在ComboBox 的顶部,否则以与'bottom'
位置相同的方式打开(并且问题相同)。
1.10.3 预计何时发布?
大约 1 个月后,1.10.3 可用。再次感谢@Adrian!以上是关于Dojo Mobile ComboBox 下拉菜单在 iOS8/Safari 中错位的主要内容,如果未能解决你的问题,请参考以下文章
Dojo - dijit / ComboBox - 鼠标选择不起作用
datatable绑定comboBox,在下拉菜单中显示对应数据
delphi 如何让Combobox下拉菜单时,显示一个树形结构