从与data-ajax = false链接的页面使用后退按钮时出现“发生网络错误”

时间:2012-10-18 16:40:25

标签: android eclipse cordova jquery-mobile

我正在尝试使用PhoneGap让我的jQuery Mobile网站在Android上运行(立即使用Galaxy S3进行测试,Android 4.0.4)。

我在尝试使用设备的“后退”按钮返回我网站的主页时收到“发生网络错误......”的应用程序错误。我正在返回的页面是最初链接到使用“data-ajax = false”的页面。

我可以按如下方式复制错误:

  1. 启动应用程序,从index.html
  2. 开始
  3. 点击使用data-ajax = false的链接,例如help.html
  4. 使用设备的后退按钮返回index.html
  5. 点击执行使用data-ajax = false,名称无关的链接
  6. 尝试使用设备的后退按钮返回index.html
  7. 它抛出的确切错误是:

      

    发生网络错误。 (文件:///android_asset/www/index.html#/android_asset/www/help.html

    奇怪的是,如果我在访问“data-ajax = false”链接页面之前没有访问其他页面,则不会抛出任何错误,并且页面按预期工作。

    我似乎无法在解决方案上找到任何在线资源。

    我已经尝试在index.html中设置$ .support.cors和$ .mobile.allowCrossDomainPages = true但这没有做任何事情。两个链接之间的唯一区别是,一个具有data-ajax = false而另一个不具有。我用两个相同的页面重现了错误,所以我确定页面的内容无关紧要。

    以下是我如何链接页面:

    <a href="help.html">Help</a>
    

    <a href="test.html" data-ajax="false">Test</a>
    

    任何建议都会受到赞赏,或者对正在发生的事情做出解释。

1 个答案:

答案 0 :(得分:0)

您应该避免在phonegap应用中使用data-ajax =“false” - 因为它会导致整页重新加载,您将丢失状态并重新初始化每个页面上的phonegap脚本,而不仅仅是在应用启动时。

虽然我无法100%确定,但是有可能连接到为什么url在那时不起作用 - android_asset可能不是设备的根文件夹,并且触发了/ android_asset的加载来自部分初始化页面的/www/help.html可能无法按预期工作。

如果您没有首先访问ajax页面,则网址上没有哈希值,它只是index.html的常规加载,与启动应用程序时相同。