window.location与jQuery Mobile冲突

时间:2012-05-18 16:31:01

标签: jquery jquery-mobile iphone-web-app

我正在构建一个移动网络应用程序,我遇到了一个非常非常奇怪的问题。

我的应用程序的核心看起来像一个合适的iPhone应用程序,带有标签栏。在我的一个屏幕上,如果单击了标签栏链接,则在重定向之前我们必须向服务器发出POST请求,然后在成功时执行重定向。

在桌面浏览器中,这完全符合预期。

在Mobile Safari中,它根本不起作用。 POST请求发生,但重定向没有。我已经尝试了许多不同的重定向技术,但没有一种技术有所作为。

我正在使用jQuery Mobile,但是因为我需要重定向到一个完全不同的页面而没有转换而没有AJAX,我使用window.location.href来重定向。

有没有人有任何想法可能会发生这种情况?如果有必要,我很乐意提供进一步的细节,我已经开始反对这两天了。

1 个答案:

答案 0 :(得分:0)

好的,这里的问题是在桌面浏览器中运行我的应用程序和在Mobile Safari中运行它之间的行为更改。

在桌面上,jQuery Mobile基本上提供的不仅仅是样式和过渡。

在Mobile Safari中,它重写了我页面上的所有网址。由于难以直接在手机或模拟器中调试网站(我知道调试控制台,但它只是略有帮助),我花了很长时间才看到它。

我通过在每个链接中添加data-url属性解决了这个问题 - 这是由jQuery Mobile重写的所以我能够使用它来将用户带到他们应该的位置从一开始就一直在进行。

我找不到任何关于jQuery Mobile正在进行此URL重写这一事实的参考,但也许我在文档中遗漏了一些内容。