我正在使用jQuery mobile(jQM)开发一个网站。这很棒,但有一件事令我不安。
jQM is not supported in all mobile browsers(特别是BlackBerry 5)。该网站在Android浏览器中看起来很漂亮:在Android上的Opera Mini上,它实际上已经破了:(
我自然地使用渐进增强开发了网站。所以它可以在没有jQM的情况下工作 - 如果我可以告诉浏览器不要使用它!
问题:对于像Android上的Opera Mini这样的平台,有没有办法可以检查jQM支持,并且完全取消应用jQM?
我知道gradeA()
属性,但您可能需要加载jQM才能使用它:
$.mobile.gradeA()
谢谢!
答案 0 :(得分:0)
如何使用jquery support对象?手机有new properties。在文档中,gradeA
是$.support.mediaquery
的快捷方式。
答案 1 :(得分:0)
jQuery Mobile自己测试浏览器功能。
您应该自定义代码,使其不再执行其增强功能。 如果您有兴趣,请尝试此处:https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.support.js
另外:如果它决定工作 - 它可能应该。尝试修复问题而不是试图让jQuery Mobile降级
[编辑]
确定。让我解释。 JQM遵循渐进增强的思想,测试浏览器功能,并在浏览器通过测试时使用其小部件和内容。这就是为什么我说如果它尝试它应该工作。
如果它试图增强并失败 - 它是JQM方面的错误/缺失支持,在理想的世界中你应该期望它被修复。现实表明你不能指望它,但你可以希望它;)它还不是一个版本。
我对“尝试修复...”的意思是,您应该下载JQM存储库,在支持测试中添加一行或两行,并使它们检测导致JQM在该特定情况下失败的功能。然后运行make
,你就有了一个全新的JMQ。
之后,您可以建议您对核心团队进行更改,他们会对此进行改进。
[编辑]
这实际上是你真正想要的:
获取支持嗅探代码的好方法。
您可以实现自己的gradeA
函数返回
$.support.mediaquery&&yourcondition
请参阅:http://jquerymobile.com/demos/1.0a4.1/#docs/api/globalconfig.html
这可以防止JQM使用您不想要的浏览器。