草庐IT

android - Bootstrap 下拉菜单不适用于 Android

coder 2024-01-28 原文

问题

如果你去https://oorkle.com/browse从桌面浏览器查看左侧,您会看到一个使用 Bootstrap 下拉菜单的过滤器/边栏,您会看到它们有效(它们下拉):

如果你足够缩小 View ,一些 jQuery 会将这些下拉菜单移动到辅助顶部导航栏中,但它们仍然有效(它们会下拉):


现在,如果您在从 Android 或 iOS(iPhone 或 iPad)加载页面时尝试这些相同的操作,您会发现下拉菜单不再有效:


HTML

如果你diff the HTML of the desktop version and the HTML of the Android/iOS version ,您只会看到很小的 CSS 差异:


如果你diff the live HTML (with modifications from JavaScript) ,与上面的差异唯一真正的区别是每个选择器都添加了一个 mobile 类:


我尝试过的

  • 如果您在 Chrome Devtools 中尝试使用 Responsive 选项(它使用 Android User-Agent 字符串),则无论页面在加载时有多宽,下拉菜单都将不起作用。
  • 我已尝试将服务器配置为为桌面和 Android/iOS 版本的页面提供相同 HTML,我看到了相同的行为:桌面下拉菜单有效,而 Android/iOS 下拉菜单有效不工作。
  • 我尝试使用 Chrome Devtools 从选择器中删除 mobile 类,但似乎没有任何效果(下拉菜单仍然没有出现)。
  • 网站使用的是 Boostrap v3.0.3。如果我用最新的 v4.1.3 bootstrap.js 文件替换 v3.0.3 bootstrap.js 文件它仍然不起作用,但我不确定它是否预计 CSS 类可能会发生变化。
  • 我已经在实际的 Android 设备上尝试过此操作,以确认它确实发生了,而不仅仅是 Chrome Devtools 错误。
  • 我尝试将网站从 Bootstrap v3.0.3 更新到最新的 v3 v3.3.7,但似乎没有效果。

我对正在发生的事情的猜测

在我看来,Bootstrap 正在以某种方式使用用户代理字符串,这导致下拉菜单无法正常工作。


网上查到的相关问题

更新

  • 我让一位同事在真实的 iOS 设备上进行了测试,他报告说下拉菜单工作正常,但在 iOS 上,用户不会看到看起来像桌面上的下拉窗口:

最佳答案

问题似乎是使用 FormStone Selecter plugin 进行选择的结果(v2.2.3),大概使用 jQuery 来处理点击,这 it seems Android now treats as a security threat and does not allow .

为了解决这个问题,我让我的 Web.py(Python 网络框架)模板文件查看用户代理字符串,如果出现“android”,它会将选择的类设置为“form-control”(一个 Bootstrap类),从而让 Bootstrap 为选择设置样式,如果“android”在用户代理字符串中,它将像往常一样使用 FormStone Selecter 插件。

所以,澄清一下:尽管我认为选择使用的是 Bootstrap 而 Bootstrap 不工作,但结果是选择没有使用 Bootstrap,并且 Bootstrap v3.0.3 选择 < em="">在 Android 上工作。

关于android - Bootstrap 下拉菜单不适用于 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799817/

有关android - Bootstrap 下拉菜单不适用于 Android的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. ruby - inverse_of 是否适用于 has_many? - 2

    当我使用has_one时,它​​工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290

  5. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  6. ruby - "undefined method"用于 rails 模型 - 2

    我正在使用带有Rails的Devise,我想添加一个方法“getAllComments”,所以我这样写:classUser在我的Controller中:defdashboard@user=current_user@comments=@user.getAllComments();end当我访问我的url时,我得到了undefinedmethod`getAllComments'for#我做错了什么?谢谢 最佳答案 因为getAllComments是一个类方法,而您正试图将其作为实例方法访问。您要么需要访问它:User.getAllCom

  7. Ruby on Rails regexp equals-tilde 与 array include 用于检查选项列表 - 2

    我正在使用Rails3.2.3和Ruby1.9.3p0。我发现我经常需要确定某个字符串是否出现在选项列表中。看来我可以使用Ruby数组.includemethod:或正则表达式equals-tildematchshorthand用竖线分隔选项:就性能而言,一个比另一个好吗?还有更好的方法吗? 最佳答案 总结:Array#include?包含String元素,在接受和拒绝输入时均胜出,对于您的示例只有三个可接受的值。对于要检查的更大的集合,看起来Set#include?和String元素可能会获胜。如何测试我们应该根据经验对此进行测试

  8. ruby-on-rails - ActiveAdmin 自定义选择过滤器下拉名称 - 2

    对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1或2)表示。UserActiveAdmin索引页上的过滤器是通过以下代码实现的:filter:booking_status,as::select然而,这会导致下拉选项为0、1或2。当管理员用户从下拉列表中选择它们时,我更愿意自己将它们命名为“未完成”、“待定”和“已确认”之类的名称。有没有办法在不改变booking_status在模型中的表示方式的情况下做到这一点? 最佳答案 假设booking_status是模型中的枚举字段,您可以使用:过滤器:booking

  9. ruby-on-rails - Ruby "Undefined Method"用于类方法 - 2

    Ruby初学者努力简单地将这个@@people散列的值打印到控制台classPerson#haveafirst_nameandlast_nameattributewithpublicaccessorsattr_accessor:first_nameattr_accessor:last_name#haveaclassattributecalled`people`thatholdsanarrayofobjects@@people=[]#havean`initialize`methodtoinitializeeachinstancedefinitialize(first_name,last_

  10. python - 用于 Python 或 Ruby 的 Amazon Book API? - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AmazonAPIlibraryforPython?我正在寻找一个AmazonAPI,它可以让我:按书名或作者查找书籍显示书籍封面获取有关每本书的信息(价格、评级、评论数、格式、页数等)Python或Ruby库都可以(我只想要最容易使用的库)。有什么建议么?我知道在SO上还有其他一些关于此的帖子,但这些API似乎很快就过时了。[几个月前我尝试了几个建议的Ruby库,但无法让它们中的任何一个工作。]

随机推荐