0

我正在用 jQuery mobile (jQM) 开发一个网站。这很棒,但有一件事让我很困扰。

并非所有移动浏览器(尤其是 BlackBerry 5)都支持jQM 。该网站在 Android 浏览器中看起来很漂亮:在 Android 上的 Opera Mini 上,它实际上已经坏了:(

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

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

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

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

$.mobile.gradeA()

谢谢!

4

2 回答 2

0

使用jquery 支持对象怎么样?有移动的新属性。在 docs 中,gradeA$.support.mediaquery.

于 2011-04-19T10:34:02.733 回答
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 使用您不想要的浏览器。

于 2011-04-19T11:37:30.703 回答