您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add speaker to duolingo feature "review flashcards"
// ==UserScript== // @name Duolingo flashcards speaker // @description Add speaker to duolingo feature "review flashcards" // @namespace vokracko // @author Lukáš Vokráčko // @include https://www.duolingo.com/* // @version 1.0 // @grant none // @encoding utf-8 // ==/UserScript== var target = document.querySelector('body'); var config = { attributes: false, childList: true, characterData: false, subtree: true}; var counter = 1; var play = function(counter, lang, word) { // play word soundManager2015.createSound( { id: counter, url: 'https://d7mj4aqfscim2.cloudfront.net/tts/' + lang + '/token/' + word, autoPlay: true }); } var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if($(mutation.addedNodes).find(".flashcard-word")) // when flashcards are shown { var lang = $(".language-choice.active").data('value'); var wordNode = $(mutation.addedNodes).find("#current-container").find(".flashcard-word"); if(wordNode.length) { var word = $(wordNode).first().text(); setTimeout(function() {play(counter, lang, word);}, 80); // wait until word is visible counter++; } } }); }); observer.observe(target, config);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址