第1部分:使用场景
华仔在web前端开发的过程中,语言使用的是JavaScript,框架涉及Jquery,
期间免不了使用界面切换,这次大部分采用的是Jquery中的$.mobile.changePage()方法,
但是发现一个问题,那就是在成功切换了页面后,新页面的JavaScript代码并没有执行,
导致该页面的数据信息还是上次看到的结果。
因此严重影响了体验。
第2部分:解决方案
在网络上搜寻了一下解决方案,部分人给出是在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; }
该教程到此结束。
© 版权声明
THE END
暂无评论内容