Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Moodle作业功能,用于在作业中插入额外文本_Javascript_Moodle - Fatal编程技术网

Javascript Moodle作业功能,用于在作业中插入额外文本

Javascript Moodle作业功能,用于在作业中插入额外文本,javascript,moodle,Javascript,Moodle,许多大学都有一个蓝卡计划,允许有特殊学习困难(SPLD)的学生用蓝卡标记他们的工作,因此导师会对其进行适当的考虑 我们需要一种让学生更容易用蓝卡标记他们的工作的方法,我已经想出了以下脚本,它进入了Moodle站点管理中的附加HTML部分,并与Moodle作业功能一起工作(有关详细信息,请参阅上一篇文章) 首先,学生单击按钮添加蓝卡,在提交评论字段中插入带有“蓝卡”字样的评论。提交表单时,JavaScript会在评分表中查找注释,并在状态列中添加一个标志,以提醒导师查看注释。然后,导师可以显示评论

许多大学都有一个蓝卡计划,允许有特殊学习困难(SPLD)的学生用蓝卡标记他们的工作,因此导师会对其进行适当的考虑

我们需要一种让学生更容易用蓝卡标记他们的工作的方法,我已经想出了以下脚本,它进入了Moodle站点管理中的附加HTML部分,并与Moodle作业功能一起工作(有关详细信息,请参阅上一篇文章)

首先,学生单击按钮添加蓝卡,在提交评论字段中插入带有“蓝卡”字样的评论。提交表单时,JavaScript会在评分表中查找注释,并在状态列中添加一个标志,以提醒导师查看注释。然后,导师可以显示评论并查看单词“蓝卡”(这是阅读障碍评分指南的链接)


这是因为和在IE中不起作用。

在IE(Edge)、Chrome和Firefox中进行了测试,在iPhone 5上进行了Safari测试,现在在IE 11中进行了测试,并根据测试结果进行了调整。以下是它的一些屏幕截图
/* MOODLE ASSIGNMENT BLUE CARD */

var MoodleAssignBlueCardButton =  '<input type="button" id="mabluecard" value="Flag with Blue Card" class="bluecard"/> <a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/"  target="_blank" title="What is the Blue Card scheme?">What\'s this?</a><br/>';

if (!document.getElementsByClassName('submissionstatustable')[0]) {
   /* do nothing */
} else {
    var assignTable = document.getElementsByClassName('submissionstatustable')[0];
    assignTable.insertAdjacentHTML('beforebegin', MoodleAssignBlueCardButton);
}

/* EVENT LISTENER FOR MOODLE ASSIGNMENT BLUE CARD BUTTON */
if (!document.getElementById('mabluecard')) {
   /* do nothing */
} else {
    document.getElementById("mabluecard").addEventListener('click', function () {  
        var commentbox = document.getElementsByClassName('comment-area')[0];
        var textarea = commentbox.getElementsByTagName('textarea')[0];
        if (!textarea.value) {
            textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>'); 
         } else if  (textarea.value == 'Add a comment...') {
               textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>'); 
       } else {
            textarea.value = ('<a href="http://www.brookes.ac.uk/students/wellbeing/dyslexia-spld/blue-marking-cards/" target="_blank" style="background-color: #99ccff">Blue Card</a>: ' + textarea.value);
         }
    /* save the comment */
    document.getElementsByClassName("comment-link")[0].click();
    var saveLink = document.getElementsByClassName("fd")[0].getElementsByTagName("a")[0];
     saveLink.click();
    });
}

/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
   /* do nothing */ 
} else {
    var table = document.getElementsByClassName('gradingtable')[0];
     var tbody = table.getElementsByTagName('tbody')[0];

     var comments = tbody.getElementsByClassName('c10');
         for (var i=0, len=comments.length; i<len; i++){
             if (comments[i].innerHTML.includes('Comments')){
              thisRow = comments[i].parentNode;
            thisRow.style.backgroundColor = '#ffffcc';
            statusCell = thisRow.getElementsByClassName("c5")[0];
             statusCell.innerHTML += ' <div style="background-color: #99bbff">Student has added comments, please review</div>';
            }
        }
    }
/* flag the Blue Card submission in the Grading Table */
if (!document.getElementsByClassName('gradingtable')[0]) {
   /* do nothing */ 
} else {
     var table = document.getElementsByClassName('gradingtable')[0];
     var tbody = table.getElementsByTagName('tbody')[0];
     var comments = tbody.getElementsByClassName('c10');
         for (var i=0, len=comments.length; i<len; i++){
             if (comments[i].innerText.search('Comments') > -1){
            thisRow = comments[i].parentNode; 
           alert('thisRow ' + thisRow);
            thisRow.style.backgroundColor = '#ffffcc';
            nameLink = thisRow.getElementsByTagName("a")[1]; 
            nameLink.insertAdjacentHTML('afterend', ' <div style="background-color: #99bbff">Student has added comments, please review</div>');
             }
        }
    }
.bluecard {
  background-color: rgba(0, 0, 255, 1) !important;
  color: #fff;
  padding: 6px;
  border-radius: 6px;
}