Jquery中使用$.mobile.changePage()导致无法加载js的问题,使用js的方法代替处理

2021/10/24 16:28 · Web前端 · 32阅读 · 0评论
阿里云·云小站,新老用户同享,1核2G云服务器低至89元/年,229元/3年;2核4G3M3年639元

Jquery中使用$.mobile.changePage()导致无法加载js的问题的使用场景

华仔在web前端开发的过程中,语言使用的是JavaScript,框架涉及Jquery

期间免不了使用界面切换,这次大部分采用的是Jquery中的$.mobile.changePage()方法,

但是发现一个问题,那就是在成功切换了页面后,新页面的JavaScript代码并没有执行,

导致该页面的数据信息还是上次看到的结果。

因此严重影响了体验。

Jquery中使用$.mobile.changePage()导致无法加载js的问题的解决方案

在网络上搜寻了一下解决方案,部分人给出是在data-role='page' 标签中添加data-ajax="false",该方法我测试无效。

还有部分人提示是否跨域,检查后前后网址一致,不存在跨域的情况。

然后就只能按照JavaScript的方式,来打包一个function解决,说实话,这个方式以前我用过,但是由于原来的简单代码包含了固定url前缀,

不适用于我给不同客户的不同域名部署改网页,所以此次决定使用$.mobile.changePage()方法,没想到又出现这个情况。

下面是华仔造轮子缓解

function jump(href) {
 var Thishref = window.location.href;//获取当前页面的完整url
 var pathname = window.location.pathname;//获取当前页面的page名
 var Path = Thishref.replace(pathname, '');//替换得到无page名的url
 location.href = Path +'/'+ href;//进行跳转
}

通过调用上面这个方法,就可以很好的解决$.mobile.changePage()导致无法加载js的问题

上面的这个代码经过测试,还是存在问题,

主要是window.location.pathname并非代表当前page的名称,

而是除了域名以外的完整路径,比如https://www.huazai186.com/post/46.html

返回的是post/46.html,

所以还需要再改写上面这段代码:

function jump(href) {
  var Thishref = window.location.href;
  var pathname = window.location.pathname;
  var patharr = pathname.split('/');
  var myPagename = patharr[patharr.length - 1];
  var Path = Thishref.replace(myPagename, '');
  location.href = Path + href;
}

该教程到此结束。

您可能感兴趣的文章

本文地址:https://www.huazai186.com/post/840.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 羽化飞翔 所有,欢迎分享本文,转载请保留出处!

文件下载

上一篇:
腾讯云618云聚惠活动火热进行中,1核2G-288元/3年,2核4G3M-1288元/3年,2核8G5M-1688元/3年,4核8G5M-1999元/3年

 发表评论


表情