fy.zip (31.5 KB)
原帖不支持mdict和欧陆,网友反馈后做了修改,请看#10 和 #11楼。思路可用在任何支持js的词典上,可以实现自动朗读词语、例句等,goldendict一个查询结果页面可以显示多个词典的词条,对多个词条内容的操作也都可以写在一个js里面。
最近查的一些词都是完全的生词,想多听听各色发音,懒得一个个点,所以改了改js实现了自动读全部语音,很简单,分享下。
就是将fy.js里面的fayin函数修改如下:
function fayin(){
for (let i = 0; i < items.length; i++) {
window.setTimeout(function(){
items.eq(i).click();
console.log(i);
}, 1000 * i);
}
}
或者解压附件文件后替换词典目录下同名文件。
6 Likes
sheril
4
是的,发音图标都消失了,是替换后才出现的,用原来的js就恢复了
能不能把你js发上来看下,然后也发下控制台下的输出截图(F12后点击Console面板)
sheril
6
我用的是欧路词典,好像没有那个console面板,这个是我用的js,我用网盘传给你,直接上传到论坛失败了
链接:https://pan.baidu.com/s/1VPJ2JUvNqpfa1FY0Yl3jOA
提取码:1111
–来自百度网盘超级会员V6的分享
抱歉我疏忽了,我发帖时忘记标明只在goldendict测试了,因为用习惯了没有考虑到别的词典软件的情况。
你这个js,就是原版的,如果用了附件的js出现问题,猜测可能跟欧路js引擎对let语法的支持有关系,因为这个替换的函数除了这个语法,没有别的特殊之处。
2 Likes
改了下,我测试ok,你试试:
方案1,更改原版的fayin函数如下:
function fayin(){
for (var i = 0; i < items.length; i++) {
(function (i) {
setTimeout(function () {
items.get(i).parentElement.style.backgroundColor="yellow";
items.eq(i).click();
}, 1000 * (i + 1));
})(i);
}
// for goldendict only
// for (let i = 0; i < items.length; i++) {
// window.setTimeout(function(){
// items.get(i).parentElement.style.backgroundColor="yellow";
// items.eq(i).click();
// console.log(i);
// }, 1000 * (i + 1));
// }
}
方案2:
下载附件文件替换原fy.js文件
fy.zip (31.6 KB)
1 Like
@sheril Mdict的浏览器引擎是IE,欧陆可能也是,所以不(完全)支持ES6的let语法,导致了原来的问题。现在的方案应该不存在此类问题了。有问题请再反馈。
2 Likes
是吗,我没用过欧陆,手机端可能是用webview,我了解下再说。桌面版试过可以吗?
1 Like
sheril
15
sorry,现在才看到,电脑端是没有什么问题的,挺好的。