jQuery mobile:在不受支持的浏览器中优雅地降级?

时间:2011-04-19 10:17:01

标签: jquery jquery-mobile browser-support

我正在使用jQuery mobile(jQM)开发一个网站。这很棒,但有一件事令我不安。

jQM is not supported in all mobile browsers(特别是BlackBerry 5)。该网站在Android浏览器中看起来很漂亮:在Android上的Opera Mini上,它实际上已经破了:(

我自然地使用渐进增强开发了网站。所以它可以在没有jQM的情况下工作 - 如果我可以告诉浏览器不要使用它!

问题:对于像Android上的Opera Mini这样的平台,有没有办法可以检查jQM支持,并且完全取消应用jQM?

  • 如果此浏览器支持jQM,请使用它。
  • 如果不是,请不要加载jQM javascript,不要加载jQM样式表,并使用基本的JavaScript站点。

我知道gradeA()属性,但您可能需要加载jQM才能使用它:

$.mobile.gradeA()

谢谢!

2 个答案:

答案 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使用您不想要的浏览器。

相关问题