解决淘宝sui插件后退bug
2016-05-19 10:17
429 查看
淘宝的sui插件在微信里,第一次访问没有问题,跳转走以后,再后退回来, 插件就无法正常加载。
一下是官方给出的说法
解决方法:所有页面都引用相同的 js,而这个 js 里面包含了所有的逻辑,事件部分使用委托来绑定。
因为我是做后台的,有些地方是JS和PHP混写的。 吧JS单独出去处理起来比较麻烦。
考虑到只有微信出现这样的问题。
设: 从A页面访问B页面 再从B页面后退到A页面
解决办法:
在A页面 JS最头代码加入
在A页面跳转B页面的连接上 加事件 参考代码如下
现在到了B页面 那么做一下判断 同样是加载JS最顶部
如果你不是通过A连接跳转到B页面的, 就会存在sessionStorage _refresh key
存在这个key 就证明用户是通过后退过来的, 此时强制刷新浏览器问题解决。
PS:只有微信端有此问题,不是最好的解决办法。没有采用淘宝官方的解决方案,。
一下是官方给出的说法
切换到的新页面中的 js 不执行
由于浏览器安全性考虑的限制以及可能的 js 重复执行或覆盖的问题,目前是不支持运行 ajax 载入的页面里面的 js 的,参考 #120。解决方法:所有页面都引用相同的 js,而这个 js 里面包含了所有的逻辑,事件部分使用委托来绑定。
因为我是做后台的,有些地方是JS和PHP混写的。 吧JS单独出去处理起来比较麻烦。
考虑到只有微信出现这样的问题。
设: 从A页面访问B页面 再从B页面后退到A页面
解决办法:
在A页面 JS最头代码加入
<?php if(!$this->isapp) :?> sessionStorage.setItem("_refresh",'1'); <?php endif;?>
在A页面跳转B页面的连接上 加事件 参考代码如下
<a class="head_r external" href="?a=3" onclick="return jumpSearch()"></a> function jumpSearch(){ <?php if(!$this->isapp) :?> sessionStorage.removeItem("_refresh"); <?php endif;?> return true; }
现在到了B页面 那么做一下判断 同样是加载JS最顶部
<?php if(!$this->isapp) :?> if(typeof(sessionStorage.getItem("_refresh")) != 'object'){ sessionStorage.removeItem("_refresh"); location.reload(true); }
如果你不是通过A连接跳转到B页面的, 就会存在sessionStorage _refresh key
存在这个key 就证明用户是通过后退过来的, 此时强制刷新浏览器问题解决。
PS:只有微信端有此问题,不是最好的解决办法。没有采用淘宝官方的解决方案,。
相关文章推荐
- Leetcode 347. Top K Frequent Elements
- GoAhead2.5源代码分析之3-用户管理实例(umui.c)
- UILabel 图文混排的简单实现
- Android基础之UI更新的四种方式
- LeetCode:Top K Frequent Elements
- Android视图重绘,使用invalidate还是requestLayout
- codeforces_667C. Reberland Linguistics(dp+set)
- Maven项目报"Dynamic Web Module 3.0 requires Java 1.6 or newer."异常的处理办法
- StringBuilder的实现与技巧
- BluetoothAdapter.LeScanCallback
- NanUI for Winform发布,让Winform界面设计拥有无限可能
- StringBuffer 与StringBuilder 区别
- UE4:本地化弹出框
- PropertyValuesHolder实现机制
- ValueAnimator实现机制_源码分析
- window运行gradle build -- --stacktrace出现找不到文件framework-4.3.0.BUILD-SNAPSHOT-schema.zip异常
- hdu 1159Common Subsequence(dp 最大不连续的子序列)
- android Activity runOnUiThread() 方法使用
- UICollectionView-网格视图
- 02.LoT.UI 前后台通用框架分解系列之——灵活的菜单栏