修改The Little Dict的js文件,自动朗读全部语音

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);
		}
	}

或者解压附件文件后替换词典目录下同名文件。

4 Likes

肿么办,我在电脑上用发音自动都有没有了

什么情况?有还是没有?替换js后出情况了吗?

是的,发音图标都消失了,是替换后才出现的,用原来的js就恢复了

能不能把你js发上来看下,然后也发下控制台下的输出截图(F12后点击Console面板)

我用的是欧路词典,好像没有那个console面板,这个是我用的js,我用网盘传给你,直接上传到论坛失败了
链接:https://pan.baidu.com/s/1VPJ2JUvNqpfa1FY0Yl3jOA
提取码:1111
–来自百度网盘超级会员V6的分享

抱歉我疏忽了,我发帖时忘记标明只在goldendict测试了,因为用习惯了没有考虑到别的词典软件的情况。
你这个js,就是原版的,如果用了附件的js出现问题,猜测可能跟欧路js引擎对let语法的支持有关系,因为这个替换的函数除了这个语法,没有别的特殊之处。

2 Likes

哦哦,原来是这样

1 Like

能不能帮忙再修改一下,能在Mdict也可以用的。

改了下,我测试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)

@sheril Mdict的浏览器引擎是IE,欧陆可能也是,所以不(完全)支持ES6的let语法,导致了原来的问题。现在的方案应该不存在此类问题了。有问题请再反馈。

2 Likes

好的,谢谢 :heart: :heart: :heart: :heart:

试了一下,发现在手机的欧路词典上好像无法适用

是吗,我没用过欧陆,手机端可能是用webview,我了解下再说。桌面版试过可以吗?

1 Like

sorry,现在才看到,电脑端是没有什么问题的,挺好的。

ipad没效果