为了账号安全,请及时绑定邮箱和手机立即绑定

切换主题后又切换回来,切换回来的主题不能生效

我看了一下源码,好像问题是在新点击的主题会创建一个新的style,而新的style的属性始终覆盖了旧的style,所以导致主题不能切换回来了,老师有遇到这样的情况吗,有什么好的解决办法吗


http://img1.sycdn.imooc.com//5ecfb4480001f49516001077.jpg

正在回答

2 回答

1.找到epub.js源码下src目录的theme.js
2.找到update函数,用下面代码覆盖该函数
update (name) {
  var contents = this.rendition.getContents();
  var head = contents[0].document.getElementsByTagName('head')[0]
  var styleArr = head.getElementsByTagName('style')
  for (let i = styleArr.length-1;i>=1;i--) {
    head.removeChild(styleArr[i])
  }
    contents.forEach( (content) => {
        this.add(name, content);
    });
}
这段代码的2~6行作用就是在设置主题时,删掉旧的主题style


0 回复 有任何疑惑可以回复我~
#1

qq_慕村0444645

这样字体就不生效了
2020-11-03 回复 有任何疑惑可以回复我~

是不是刷新之后切换未切换的主题,都是流畅的,再切回之前的主题就不生效了,需要翻页后可能生效?

0 回复 有任何疑惑可以回复我~
#1

慕粉041413 提问者

是的,未切换过后的主题都会生效,但是切换到切换过的主题就不会生效了,翻页过后可以重新切换当前未切换过的主题
2020-06-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

切换主题后又切换回来,切换回来的主题不能生效

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信