forked from mrlan/EnglishPal
41 lines
995 B
JavaScript
41 lines
995 B
JavaScript
var isRead = true;
|
|
var isChoose = true;
|
|
const reader = window.speechSynthesis; // 全局定义朗读者,以便朗读和暂停
|
|
//获取字符
|
|
function getWord() {
|
|
return window.getSelection
|
|
? window.getSelection()
|
|
: document.selection.createRange().text;
|
|
}
|
|
//填充字符
|
|
function fillingWord() {
|
|
let word = getWord();
|
|
if (isRead) read(word);
|
|
if (!isChoose) return;
|
|
let element = document.getElementById("selected-words");
|
|
element.value = element.value + " " + word;
|
|
}
|
|
document
|
|
.getElementById("text-content")
|
|
.addEventListener("click", fillingWord, false);
|
|
//朗读单词
|
|
//@word 要朗读的单词
|
|
function read(word) {
|
|
//关闭当前正在读的单词
|
|
reader.cancel();
|
|
//创建新的朗读任务
|
|
let msg = new SpeechSynthesisUtterance(word);
|
|
reader.speak(msg);
|
|
}
|
|
//关闭正在读的单词
|
|
function onReadClick() {
|
|
let isRead = !isRead;
|
|
if (!isRead) {
|
|
reader.cancel();
|
|
}
|
|
}
|
|
//取消当前选择
|
|
function onChooseClick() {
|
|
isChoose = !isChoose;
|
|
}
|