写博客是为了和过去以及未来的自己对话
“对任何渴望进步的人来说,写博客/文章/回答对自己的成长帮助都是巨大的。坚持写作的那一刻起,就已经开始受益。”
随笔 - 21,  文章 - 0,  评论 - 0,  阅读 - 6569

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()// 使用完后最好清除掉内存

 

posted on   sxb_sunday  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示