0.最近学习需要,下载了anki的安卓端,但是在使用选择题的卡片模板的时候,遇到了bug(因为这个软件免费,所以作者也没有花很多时间维护吧=_=.IOS端是没有这个bug的,但是IOS需要128软妹币,好贵。。)。
1.bug内容:这个卡片模板,正面是题干和选项,点击显示答案之后,会显示卡片背面,背面也是题干和选项,选项会被橙色标记。在此基础上,有两个小功能:①每次打开同一张卡片的时候,选项顺序要随机排列。②卡片正面点击的选择项会在背面判断正误,错误的话需要红色标记。如下图所示
初始状态
点击选择项后的状态
显示答案之后
实际遇到的问题就是,显示答案之后,正面的选择项的值没有办法简单传递给背面的卡片,导致错误的红色样式不能正确表示。
2.解决办法:anki的模板是使用了【py】这个变量来传递选择项的值的,在js脚本里面没有找到py这个变量,我觉得应该是anki的后端的变量,因为anki的正反面的DOM是严格隔离的,所以没有办法在正反面共享同一个变量值。模板本身使用py这个变量,应该是经由后端去把正的值传递给后面的脚本了,我试过在Windows客户端和Edge,Google浏览器都是可以的,网上说IOS客户端也可以。但是实测安卓客户端不行,我的解决办法是摒弃原先使用的py变量,使用【sessionStorage】存储正面的值,问题得到解决。
sessionStorage.setItem("optionList", optionOl.innerHTML)// 存储正面选择项的顺序 sessionStorage.setItem("optionChecked", radio.id)// 在选择项的点击事件里存储选择的答案 sessionStorage.clear()// 使用完后最好清除掉内存
标签:卡片,anki,py,选择项,安卓端,sessionStorage,bug From: https://www.cnblogs.com/shixiaobin/p/18488039