Greasy Fork is available in English.
Provides jump buttons to the next lesson for leveling up (based on minirock / oltodosel autoScroller).
当前为
// ==UserScript==
// @name Duolingo LevelJumper
// @description Provides jump buttons to the next lesson for leveling up (based on minirock / oltodosel autoScroller).
// @version 2
// @namespace esh
// @match https://www.duolingo.com/learn
// @match https://www.duolingo.com/learn?utm_source=pwa_launch
// ==/UserScript==
window.onload = function () {
addJumpMarks();
};
function addJumpMarks() {
let level = document.querySelectorAll('.GkDDe');
let level1 = new Array();
let level2 = new Array();
let level3 = new Array();
let level4 = new Array();
let level5 = new Array();
for (let i=0;i<level.length;i++) {
switch(level[i].innerHTML) {
case '1':
level1.push(level[i]);
break;
case '2':
level2.push(level[i]);
break;
case '3':
level3.push(level[i]);
break;
case '4':
level4.push(level[i]);
break;
case '5':
level5.push(level[i]);
break;
}
}
let insertElement = document.querySelector('._3yqw1');
let jumpMark = document.createElement('div');
jumpMark.setAttribute('class','_3yqw1 np6Tv');
jumpMark.setAttribute('style','padding-top: 0.6rem; padding-right: 0.6rem; top: 148px;');
if(level1.length!=0) {
level1[level1.length-1].id = 'notDone';
jumpMark.innerHTML =
`<div class="_2-dXY _1swBH" style="font-size: 14.84px;">
<a href="#notDone">
<img alt="crown" class="_18sNN" src="//d35aaqx5ub95lt.cloudfront.net/images/fafe27c9c1efa486f49f87a3d691a66e.svg">
</a>
</div>`;
}
if(level2.length!=0) {
level2[level2.length-1].id = 'level1';
jumpMark.innerHTML +=
`<div class="_2-dXY _1swBH" style="font-size: 14.84px;">
<a href="#level1">
<img alt="crown" class="_18sNN" src="//d35aaqx5ub95lt.cloudfront.net/images/b3ede3d53c932ee30d981064671c8032.svg">
<div class="GkDDe" data-test="level-crown">1</div>
</a>
</div>`;
}
if(level3.length!=0) {
level3[level3.length-1].id = 'level2';
jumpMark.innerHTML +=
`<div class="_2-dXY _1swBH" style="font-size: 14.84px;">
<a href="#level2">
<img alt="crown" class="_18sNN" src="//d35aaqx5ub95lt.cloudfront.net/images/b3ede3d53c932ee30d981064671c8032.svg">
<div class="GkDDe" data-test="level-crown">2</div>
</a>
</div>`;
}
if(level4.length!=0) {
level4[level4.length-1].id = 'level3';
jumpMark.innerHTML +=
`<div class="_2-dXY _1swBH" style="font-size: 14.84px;">
<a href="#level3">
<img alt="crown" class="_18sNN" src="//d35aaqx5ub95lt.cloudfront.net/images/b3ede3d53c932ee30d981064671c8032.svg">
<div class="GkDDe" data-test="level-crown">3</div>
</a>
</div>`;
}
if(level5.length!=0) {
level5[level5.length-1].id = 'level4';
jumpMark.innerHTML +=
`<div class="_2-dXY _1swBH" style="font-size: 14.84px;">
<a href="#level4">
<img alt="crown" class="_18sNN" src="//d35aaqx5ub95lt.cloudfront.net/images/b3ede3d53c932ee30d981064671c8032.svg">
<div class="GkDDe" data-test="level-crown">4</div>
</a>
</div>`;
}
insertElement.insertAdjacentElement('afterend',jumpMark);
}