【问题标题】:jquery mobile - how to load page properly after coming back from external linkjquery mobile - 从外部链接返回后如何正确加载页面
【发布时间】:2017-10-24 07:37:02
【问题描述】:

我创建了 JQM 网站,我使用单页设计,这意味着我的 index.html 首先加载所有 .js、css 等文件。 我剩下的页面是带有data-role="page" 的简单Divs。

当我浏览网站时,浏览器 URL 正在更改,并且后退按钮也可以使用。 但问题是:

网站包含支付系统,为此,用户将从我的网站重定向到支付页面,成功/失败后,支付页面会尝试重定向回我网站的最后一个 URL,如下所示:

http://<ip>:<port>/appName/pages/page-name.html

但这并没有加载任何 css 或 JS 文件。

有什么办法可以保留上次的会话吗? 请帮我解决这个问题。

提前致谢

【问题讨论】:

  • 支付系统应该有一个回调函数,你可以指定返回哪个URL。
  • 是的,它就在那里,我从那里重定向以加载我网站的 URL,当我加载我网站的最后一个 URL 时,它不会加载所有 css、js 文件,只是纯未对齐html 正在显示。
  • 您是否启用了changeHash?也许你应该建立一个像http://&lt;ip&gt;:&lt;port&gt;/appName/pages/index.html#page-name 这样的散列然后返回。这是一个演示:jQuery Mobile Hash Processing
  • 是的,我启用了它,因为浏览器的后退按钮导航非常好。但是当它从外部链接返回或我重定向到特定页面时会出现。

标签: javascript jquery html css jquery-mobile


【解决方案1】:

在 JQM 中,您不能直接链接到多页文档中的特定页面。

当您链接到具有多个页面的页面时,jQuery mobile 的工作方式将默认加载第一页。您将需要使用subpages plugin 来使用 AJAX 加载页面

您应该分开您的页面或通过 AJAX(使用插件)预加载多页文档,然后作为内部页面链接到它

来自Documentation

注意:您不能使用 Ajax 导航链接到多页文档 活跃,因为框架只会加载它找到的第一页, 不是完整的内部页面。在这些情况下,您必须链接 不使用 Ajax(请参阅下一节)进行整页刷新以防止 潜在的哈希冲突。目前有一个子页面插件 可以加载多页文档

请务必注意,如果您从移动网页链接 通过 Ajax 加载到包含多个内部页面的页面, 您需要在链接中添加 rel="external" 或 data-ajax="false"。 这告诉框架重新加载整个页面以清除 URL 中的 Ajax 哈希。这很关键,因为 Ajax 页面使用哈希 (#) 来跟踪 Ajax 历史,而多个内部页面使用 散列来指示内部页面,因此散列中会有冲突 这两种模式之间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多