klh0317 2019-05-15 22:28 采纳率: 0%
浏览 883
已结题

Js制作anki模版,在PC和电脑没问题,但在安卓为什么不行?

诸位大神你们好 ,我并不是程序员,只是在使用anki(一个记忆软件)中有些问题想请大家帮忙看一下

图片说明

这是我下的模版,制作的题库
四个选型每次打开顺序不一样,如果答错了,会出现下图

图片说明

而且最上面会有统计数据,但是在PC和苹果都可以正常显示,在安卓手机上,无论你选什么答案,都只会出现正确答难,不会出现上面图片答错选项的红色删除线,而且统计数据都是100%, 下图是添加卡片的样子
图片说明图片说明

正面模版

<div class="text">{{cloze:Question}}</div>
{{#Options}}
<ol class="options" id="optionList">
<!--options第一行为正确答案,每次会随机组合选项,每个选项以换行符分隔,选项中用换行符请用<br>标签-->
</ol>
<!--下面的div用来传递选项参数,土办法-->
<div id="options" style="display:none">{{Options}}</div>
<script>
//向head添加一个全局变量mc来进行正反卡片传值
 if(typeof(mc)=="undefined"){
 var script=document.createElement('script')
 script.innerHTML="var mc={correct:0,total:0,list:'',checked:''}"
 document.head.appendChild(script)
}
mc.total++
showOptions()
//移动端显示radio组件
if(typeof(ankiPlatform)=="undefined"){
 var options=document.querySelectorAll("input[name='options']")
 for(var i in options){
  options[i].style.display='inline'
 }
}
</script>
{{/Options}}

中间格式刷

</style><!--填充Anki默认style-->
<style>
.card {
 font-family: Arial;
 font-size: 17px;
 text-align: left;
 color: white;
 background-color: #272822;
}
div{
 margin:5px auto
}
.text{
 color:#e6db74;
 text-align:left;
}
.hint{
 color:#a6e22e;
}
.extra{
 margin-top:15px;
 font-size:16px;
 color: #eeeebb;
 text-align:left;
}
.cloze {
 font-weight: bold;
 color: #a6e22e;
}
.wrong {
 font-weight: 400;
 text-decoration:line-through;
 color: #f92672;
}
.options{
 list-style:upper-latin;
}
.options *{
 cursor:pointer;
}
.options *:hover{
 font-weight:bold;
}
.options li{
 margin-top:5px;
}
.options input[name="options"]{
 display:none;
}
/*定位正确率展示条*/
#performance{
 text-align:center;
 font-size:12px;
 margin-top:0px;
}
</style>
<script>
function showOptions(){
var optionOl=document.getElementById("optionList")
var options=document.getElementById("options")
var s=0
var indexs=[]
var optionList=""
options=options.innerHTML
options=options.replace(/<\/?div>/g,"\n")
options=options.replace(/\n+/g,"\n")
options=options.replace(/<br.*?>/g,"\n")
//去除首尾换行符
options=options.replace(/^\n/,"")
options=options.replace(/\n$/,"")
//以换行符分隔选项为数组
options=options.split("\n")
//随机组合选项
for(var key in options){
 do{
  s=Math.random()*(options.length)
  s=Math.floor(s)
  if(indexs.join().indexOf(s.toString())==-1){
  indexs.push(s)
  break
  }
 }while(true)
 if(s==0){
  optionList+="<li id='optionTrue'>"+"<label for=option"+s+" >"+options[s]+"</label>"+"<input onclick='showAns(this)' type='radio' name='options' id=option"+s+" />"+"</li>"
 }else{
  optionList+="<li>"+"<label for=option"+s+" >"+options[s]+"</label>"+"<input type='radio' onclick='showAns(this)' name='options' id=option"+s+" />"+"</li>"
 }
}
optionOl.innerHTML=optionList
//把列表存到mc中
if(typeof(mc)!="undefined"){
 mc.list=optionOl.innerHTML
}
}
function showAns(radio){
 if(typeof(mc)=="undefined") return
  var optionOl=document.getElementById("optionList")
  mc.list=optionOl.innerHTML
  mc.checked=radio.id
  //判断是否选择正确
  if(radio.id=='option0'){
   mc.correct++
  }
 try{
  pycmd("ans")
 }catch(e){}
}
function getOptions(){
var optionOl=document.getElementById("optionList")
//判断是否有mc变量
if(typeof(mc)!="undefined" ){
optionOl.innerHTML=mc.list
//标出选择项目,默认为错误
 if(mc.checked){
  var optionChecked=document.getElementById(mc.checked)
  optionChecked.parentNode.className="wrong" 
  optionChecked.checked=true
  mc.checked=''
 }
}else{
showOptions()
}
//高亮答案选项
var optionTrue=document.getElementById("optionTrue")
optionTrue.className="cloze" 
var radios=document.getElementsByName("options")
for(var i in radios){
radios[i].disabled=true
}
}
</script>

背面模版

<div id="performance">正确率:100%</div>
<div class="text">{{cloze:Question}}</div>
{{#Options}}
<ol class="options" id="optionList"></ol>
<div id="options" style="display:none">{{Options}}</div>
<script>
getOptions()
</script>
{{/Options}}
{{#Extra}}
 <hr>
 <div class="extra">{{Extra}}</div>
{{/Extra}}
<script>
//显示正确率
var performance=document.getElementById("performance")
if(typeof(mc)!="undefined"){
 var percent=((mc.correct/mc.total)*100).toFixed(2)
 performance.innerHTML='本次做题数:'+mc.total+"&nbsp;正确数:"+mc.correct+"&nbsp;正确率:"+percent+"%"
}
</script>

这么多代码我实在看不懂,我需要这个做题库,请大家帮忙看一下,万分感谢

  • 写回答

4条回答 默认 最新

  • yivifu 2021-05-12 14:17
    关注

    已履行承诺,贴出了代码:https://blog.csdn.net/yivifu/article/details/116348307

    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)