淘宝的sui插件在微信里,第一次访问没有问题,跳转走以后,再后退回来, 插件就无法正常加载。
一下是官方给出的说法
切换到的新页面中的 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:只有微信端有此问题,不是最好的解决办法。没有采用淘宝官方的解决方案,。