EbookReader.vue中touchend的preventDefault出现的错误问题

来源:3-6 聊一聊遇到新技术的是如何进行学习

树佬

2022-04-17

图片描述

当我加载完电子书时点击屏幕,出现这个错误,指向EbookReader.vue中touchend的preventDefault,但百度无果,求大佬帮忙解决

写回答

1回答

树佬

提问者

2022-04-17

【已解决】

前情:这个问题是我在完成国际化字体功能之后,突然就出现的问题,一开始我也不理解,百度说法大多解释将addEventListener()里面第三个参数改为{passive: true }。{此处延展一下:这个passive 参数是浏览器为了解决等待事件的默认行为问题,比如,在事件监听器addEventLisener()中,通过passive:true告诉浏览器这个监听函数不会调用prevenDefault()函数,从而省去了执行监听器函数执行(寻找有没有preventDefault函数)的时间,如果监听器只写了两个参数时,passive会默认为false,那么浏览器就默认这个监听器有该事件。}

思路:我思前想后,难道是因为这个国际化字体的库vue-i8n里面有监听器?但是错误直接指向的是EbookReader里面的监听器(我还是去 i8n库里面的js文件逐个找了,确实没有。)。因为这个监听器是在rendition 对象里面的,所以我就想到去epubjs里面找这个监听器看能不能将这第三个参数给补上,但在rendition.js里面也没能找到这个监听器,说明也不是这个问题。此时我脑子懵懵的,不知从何下手,就先把这个问题给放一边,把EbookReader的监听器注释掉(注释掉不保错)。

解决:想着先解决“Blocked script execution in 'http://localhost:8080/' because the document's frame is sandboxed and the 'allow-scripts' permission is not set”图中这个问题,这个问题我昨天就解决了的,今天又报错,然后我又去回顾了解决办法,我直接用npm i epubjs@0.3.71 降低epbujs 版本(昨天用这个命令重装后就是这个版本),然后重启一下项目,惊喜的是,两个问题同时解决了?!!奇怪,所以我很怀疑是因为这个重装命令会导致原来的依赖包遗留,造成这个错误的产生!这个命令是否会产生这样的问题,我百度了无果,所以降低依赖包的话还是得怪乖乖地先npm uninstall XXX 再用npm install XXX@0.3.71 下载对应的版本!

感谢浪费您这么多时间看我自言自语!

0
0

Vue 实战商业级读书Web APP完整项目

Vue全家桶+最新前端技术+前后端分离架构,完整项目流程

1610 学习 · 1951 问题

查看课程