首页 > 解决方案 > framework7:从 URL 中剥离工作人员 ID 后,选项卡链接损坏

问题描述

shinyMobile 的inst/framework7-5.7.8/my-app.js文件顶部有以下代码块:

if (typeof workerId != "undefined") {
  var hash = window.location.hash;
  var search = window.location.search;
  var pathname = window.location.pathname;
  var newpath = pathname + workerId + search + hash;
  window.history.replaceState( {} , 'newpath', newpath);
}

每当应用程序不在本地运行时,它都会将一个随机字符串(工作人员 ID)附加到应用程序的 URL。例如,https://my_domain/my_app/ 变为 https://my_domain/my_app/ _w_123456 /。

这非常烦人,因为它会阻止搜索参数(例如,?param=test)被一致地捕获(截屏视频)。

所以,我按照这篇文章中找到的解决方案并注释掉了window.history.replaceState( {} , 'newpath', newpath);上面的行。

现在,工作人员 ID 不再出现在 URL 中。但是应用程序选项卡的链接仍然以某种方式使用工作人员 ID 进行了初始化!例如,https://my_domain/my_app/ _w_123456 /#tabset-tab1。而且,在第一次单击时,由于我上面的更改,它们被更新为不包含工作人员 ID (https://my_domain/my_app/#tabset-tab1),导致它们损坏!请看这个新的截屏视频

我试图找到在shinyMobile中初始化选项卡链接的脚本,但我找不到它。也许这是一个framework7功能?

任何提示将不胜感激,因为我完全不知道如何解决这个问题。

PS:我确实在shinyMobile 的GitHub 上发过帖子,但是看看其他最近的问题,我似乎不太可能很快得到答案。

标签: javascripthtmlrshinyshinyapps

解决方案


包的作者实施了一个修复:https ://github.com/RinteRface/shinyMobile/issues/140#issuecomment-754765964 非常感谢他!


推荐阅读