我正在参加一个使用 Scorm 播放器的驾驶员教育课程,而且速度慢得令人痛苦 - 它需要一个进度条来填充,然后我才能进入下一张幻灯片,只要我需要阅读它,通常需要 2-3 倍的时间。我使用检查元素来尝试了解进度条的工作原理以及如何在完成幻灯片后将其设置为完成。这是它在检查元素中显示的内容:
<div tabindex="-1" aria-hidden="false" aria-label="slide progress" data-ref="progressBar" class="cs-fill cs-brandhighlight-bg progress-bar-fill" style="width: 100%;" role="slider" aria-valuemin="0" aria-valuenow="23.04" aria-valuemax="23" data-tabindex="-1" aria-valuetext="100%">
<div class="prev-progress-bar-fill-preview cs-fill" data-ref="prevProgressPreview"></div>
</div>
所以,我的问题:有没有办法在控制台中设置进度条以完成,以便我可以前进到下一张幻灯片?
我找到了一种方法来跳过以 HTML5 形式发布的 Adobe Captivate 课程(使用 Scorm 播放器)中的幻灯片。基本上是这样的:https://medium.com/@barsh/adobe-captivate-how-to-cheat-9bdbb34121f0
为了方便起见,我用以下地址创建了一个书签,以便一键执行该代码,而不必每次都在控制台中重新输入:
javascript:window.frames[0].cpAPIInterface.next()
在我的例子中,页面上只有一个
iframe
,这就是索引为 0 的原因。
以下代码完成相关进展。 SetScore 第二个和第三个参数确定最大和最小分数。
javascript:window.frames.SetScore(100,100,0)
javascript:window.frames.SetPassed()
如果你想要更安全,你可以设置超时并添加一些随机性。
setTimeout(() => {
const randomScore = Math.floor(Math.random() * (100 - 80 + 1)) + 80; // between 80-100
window.frames.SetScore(randomScore, 100, 0);
window.frames.SetPassed();
}, 1 * 60 * 1000); // 1 minute