解决live2d看板娘和busuanzi不蒜子计数冲突


问题描述

近日安装了live2d看板娘插件,github项目地址,安装后却意外发现busuanzi不蒜子计数失效了,在页面中不显示,但强制刷新后出现,再刷新又消失。经排查,未发现问题,但事实是网站源码出现了变化。
正常时


<span id="busuanzi_container_site_pv">
    |&nbsp;<i class="far fa-eye"></i>&nbsp;总访问量:&nbsp;<span id="busuanzi_value_site_pv"
        class="white-color"></span>&nbsp;次
    </span>
<span id="busuanzi_container_site_uv">
    |&nbsp;<i class="fas fa-users"></i>&nbsp;总访问人数:&nbsp;<span id="busuanzi_value_site_uv"
        class="white-color"></span>&nbsp;人
    </span>
</span>

异常时


<span id="busuanzi_container_site_pv" style="display: none;">
    |&nbsp;<i class="far fa-eye"></i>&nbsp;总访问量:&nbsp;<span id="busuanzi_value_site_pv" 
        class="white-color">2303950</span>&nbsp;次
</span>
<span id="busuanzi_container_site_uv" style="display: none;">
    |&nbsp;<i class="fas fa-users"></i>&nbsp;总访问人数:&nbsp;<span id="busuanzi_value_site_uv" 
        class="white-color">160644</span>&nbsp;人
</span>

对比发现出现了多余的style="display: none;
到issues查看,也未发现同类问题。至今博主未找到根本原因,也不懂js语法,只是找到了解决办法,做一个记录,烦请知道具体原因的大佬留言。

解决方法

首先是将不蒜子的js插件保存到本地,我的主题中位于\themes\hexo-theme-matery\source\libs\others\busuanzi.pure.mini.js。如果使用的是来自外网的js文件,也请下载到本地。
将js文件更改为如下:

var bszCaller,bszTag;!function(){var c,d,e,a=!1,b=[];ready=function(c){return a||"interactive"===document.readyState||"complete"===document.readyState?c.call(document):b.push(function(){return c.call(this)}),this},d=function(){for(var a=0,c=b.length;c>a;a++)b[a].apply(document);b=[]},e=function(){a||(a=!0,d.call(window),document.removeEventListener?document.removeEventListener("DOMContentLoaded",e,!1):document.attachEvent&&(document.detachEvent("onreadystatechange",e),window==window.top&&(clearInterval(c),c=null)))},document.addEventListener?document.addEventListener("DOMContentLoaded",e,!1):document.attachEvent&&(document.attachEvent("onreadystatechange",function(){/loaded|complete/.test(document.readyState)&&e()}),window==window.top&&(c=setInterval(function(){try{a||document.documentElement.doScroll("left")}catch(b){return}e()},5)))}(),bszCaller={fetch:function(a,b){var c="BusuanziCallback_"+Math.floor(1099511627776*Math.random());window[c]=this.evalCall(b),a=a.replace("=BusuanziCallback","="+c),scriptTag=document.createElement("SCRIPT"),scriptTag.type="text/javascript",scriptTag.defer=!0,scriptTag.src=a,document.getElementsByTagName("HEAD")[0].appendChild(scriptTag)},evalCall:function(a){return function(b){ready(function(){try{a(b),scriptTag.parentElement.removeChild(scriptTag)}catch(c){bszTag.hides()}})}}},bszCaller.fetch("//busuanzi.ibruce.info/busuanzi?jsonpCallback=BusuanziCallback",function(a){bszTag.texts(a),bszTag.shows()}),bszTag={bszs:["site_pv","page_pv","site_uv"],texts:function(a){this.bszs.map(function(b){var c=document.getElementById("busuanzi_value_"+b);c&&(c.innerHTML=a[b])})},hides:function(){this.bszs.map(function(a){var b=document.getElementById("busuanzi_container_"+a);b&&(b.style.display="")})},shows:function(){this.bszs.map(function(a){var b=document.getElementById("busuanzi_container_"+a);b&&(b.style.display="inline")})}};

操作其实就是把其中的b.style.display="none"none去掉。

最新进展

我已经向作者提出issue,问题最新进展: https://github.com/EYHN/hexo-helper-live2d/issues/161


文章作者: BoyInTheSun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BoyInTheSun !
 上一篇
Scrapy实例————爬取学堂在线合作院校页面内容 Scrapy实例————爬取学堂在线合作院校页面内容
通过`Scrapy`爬取到合作院校的名称及该所院校在学堂在线开课的数量,将爬取到的数据保存到一个json文件中,例如:“清华大学,308”,地址 http://www.xuetangx.com/partners
2020-04-02
下一篇 
使用Persepolis Download Manager提升下载速度 使用Persepolis Download Manager提升下载速度
aria2是程序员们最爱的多线程下载工具,甚至还有远程下载,自动执行脚本等等附属功能,而且支持几乎所有平台。但是命令行的操作方式让普通用户不习惯,于是便衍生出了一系列套壳GUI程序。
2020-03-25
  目录