// ==UserScript== // @name 有道翻译听写 // @namespace page // @version 0.1 // @description 有道翻译进行听写,提升英语能力 // @author page // @match https://fanyi.youdao.com/* // @icon <$ICON$> // @grant none // @require https://code.jquery.com/jquery-2.1.4.min.js // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/467937/%E6%9C%89%E9%81%93%E7%BF%BB%E8%AF%91%E5%90%AC%E5%86%99.user.js // @updateURL https://update.greasyfork.icu/scripts/467937/%E6%9C%89%E9%81%93%E7%BF%BB%E8%AF%91%E5%90%AC%E5%86%99.meta.js // ==/UserScript== window.sentense =[]; window.currentIndex=0; window.word_g=""; (function() { 'use strict'; // Your code here... //播放声音 function play(index){ //重放不请求接口 if(index==0&&document.getElementsByClassName('voice')[0].src){ document.getElementsByClassName('voice')[0].currentTime =0 document.getElementsByClassName('voice')[0].play(); document.getElementsByClassName('mySentense')[0].focus() document.getElementsByClassName('tab-body-border-box')[0].style.display ='none' return } let sum = window.currentIndex + index if(sum<0||sum>=window.sentense.length){ return alert('结束标记') } window.currentIndex = sum; document.getElementsByClassName('voice')[0].src =`https://dict.youdao.com/dictvoice?audio=${window.sentense[sum]}&le=eng` document.getElementsByClassName('voice')[0].playbackRate =localStorage.getItem("rate")?localStorage.getItem("rate"):1.0 document.getElementsByClassName('voice')[0].play(); document.getElementsByClassName('mySentense')[0].focus() document.getElementsByClassName('tab-body-border-box')[0].style.display ='none' } //刷新 function refresh(){ window.sentense=[] document.getElementsByClassName('checkbox color_text_3')[0].click() setTimeout(()=>{ document.getElementsByClassName('checkbox color_text_3')[0].click() setTimeout(()=>{ //刷新句子 let text = document.getElementsByClassName('src') if(text.length&&window.sentense.length==0){ for(let i=0;i🔉<') document.getElementById('YOUDAO_SELECTOR_IFRAME').contentDocument.getElementsByClassName('voice')[0].src =`https://tts.youdao.com/fanyivoice?word=${word}&le=eng&keyfrom=speaker-target` document.getElementById('YOUDAO_SELECTOR_IFRAME').contentDocument.getElementsByClassName('voice')[0].play(); document.getElementById('YOUDAO_SELECTOR_IFRAME').contentDocument.getElementsByClassName('voicePlay')[0].onclick=()=>{ document.getElementById('YOUDAO_SELECTOR_IFRAME').contentDocument.getElementsByClassName('voice')[0].playbackRate =localStorage.getItem("rate")?localStorage.getItem("rate"):1.0; document.getElementById('YOUDAO_SELECTOR_IFRAME').contentDocument.getElementsByClassName('voice')[0].play(); } window.word_g =word; } } } function format (text){ let rule = localStorage.getItem("rule") let finalText = text for(let i =0;i{ setInterval(()=>{voicePlay()},1000) setTimeout(()=>{ if(localStorage.getItem("rate")&&document.getElementsByClassName('rate')[0]){ document.getElementsByClassName('rate')[0].value =localStorage.getItem("rate") } let html =`
` document.getElementsByClassName('footer')[0].style.textAlign ='center' document.getElementsByClassName('footer')[0].innerHTML = html if(localStorage.getItem("rule")&&document.getElementsByClassName('rule')[0]){ document.getElementsByClassName('rule')[0].value =localStorage.getItem("rule") } document.getElementsByClassName('mySentense')[0].oninput=(e)=>{ let text = e.target.value let input = text.toUpperCase() for(let i =0;i{ if(e.key =='ArrowDown'){ play(0) } if(e.key =='Enter'&&document.getElementsByClassName('successTip')[0].style.visibility!='hidden'){ console.log(window.currentIndex , window.sentense.length-1) if(window.currentIndex == window.sentense.length-1){ document.getElementsByClassName('tab-body-border-box')[0].style.display ='block' }else{ play(1) } document.getElementsByClassName('mySentense')[0].value="" document.getElementsByClassName('successTip')[0].style.visibility='hidden' } } document.getElementsByClassName('pre')[0].onclick=()=>{ play(-1) } document.getElementsByClassName('current')[0].onclick=()=>{ play(0) } document.getElementsByClassName('next')[0].onclick=()=>{ play(1) } document.getElementsByClassName('refresh')[0].onclick=()=>{ refresh(); } document.getElementsByClassName('rate')[0].onchange=(e)=>{ localStorage.setItem("rate",e.target.value) } document.getElementsByClassName('rule')[0].onchange=(e)=>{ localStorage.setItem("rule",e.target.value) } document.getElementsByClassName('lookEnglish')[0].onclick=()=>{ document.getElementsByClassName('tab-body-border-box')[0].style.display ='block' } document.getElementById('inputOriginal').oninput=(e)=>{ //let text = e.target.value.replaceAll('\t',' ') //document.getElementById('inputOriginal').value = text.split('.').join('\n') //sentense = text.indexOf('\n\n')!=-1? text.split('\n\n') :text.split('\n') } },2000) } })();