# 请教：不同词典软件对javascript的兼容性

**URL:** <https://forum.freemdict.com/t/topic/13394>\
**Category:** 技术交流与词典编修\
**Tags:** javascript, goldendict\
**Created:** [2022 年6 月 3 日 01:51 UTC](https://forum.freemdict.com/t/topic/13394 "2022-06-03T01:51:07Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2022 年6 月 3 日 01:51 UTC](https://forum.freemdict.com/t/topic/13394/1 "2022-06-03T01:51:07Z")

</div>

看到隔壁的一个javascript应用，在mdict中很好，但无法在goldendict中使用：  
[《简明英汉词典三万通》（词典+背单词）首发](https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=47234)

请教：不同词典软件对javascript的兼容性大致是如何的？

---

<div class="post-metadata">

作者： ![last\_idol](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/last_idol/32/2205_2.png) [@last\_idol](https://forum.freemdict.com/u/last_idol)\
发布日期： [2022 年6 月 3 日 03:39 UTC](https://forum.freemdict.com/t/topic/13394/2 "2022-06-03T03:39:05Z")

</div>

如果是QT6 + WebEngine版本的GoldenDict，对Javascript的支持是最新的，没有兼容性问题。

这里的问题是这个词典用了浏览器的内置跳转，MDict的协议是"entry://%word%“，GoldenDict的是"gdlookup://localhost?%word%”，欧路的没看过，各家对这个跳转协议的支持都可能不太一样。想兼容的话要对这个跳转协议做适配。

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2022 年6 月 3 日 04:57 UTC](https://forum.freemdict.com/t/topic/13394/3 "2022-06-03T04:57:32Z")

</div>

我把bdc.js中所有的 `entry://` 都更改为 `gdlookup://localhost?`，但还是不行。

---

<div class="post-metadata">

作者： ![last\_idol](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/last_idol/32/2205_2.png) [@last\_idol](https://forum.freemdict.com/u/last_idol)\
发布日期： [2022 年6 月 3 日 05:46 UTC](https://forum.freemdict.com/t/topic/13394/4 "2022-06-03T05:46:08Z")

</div>

以词头nice为例，GoldenDict跳转的完整协议是：

```auto
gdlookup://localhost?word=nice&group=4294967294

```

group是分组id，默认是4294967294，指定分组，改成1，2，3，4。

在开发者工具里，可以输入下面字符串自己尝试。要改Javascript最好作者自己来，简单替换不一定能生效。

 ![nice](https://forumcdn.freemdict.com/uploads/default/original/3X/a/9/a91f34d4ab960a8a88c8aeaead56a1001e313291.png)

---

<div class="post-metadata">

作者： ![xiaoyifang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/x/df788c/32.png) [@xiaoyifang](https://forum.freemdict.com/u/xiaoyifang)\
发布日期： [2022 年6 月 3 日 07:52 UTC](https://forum.freemdict.com/t/topic/13394/5 "2022-06-03T07:52:06Z")

</div>

一般来说如果gd可以识别出来的话，会自动替换。  
不过对js中使用的链接应该没处理。

也可以尝试链接 bword:xxxxx(不是bword://,这个最好测试下。) 也是gd内置的一个链接形式 跟 gdlookup://localhost?word=xxxx通用。

考虑后续直接让gd支持entry://xxxxx 得了。

---

<div class="post-metadata">

作者： ![filestrans2020](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/f/91b2a8/32.png) [@filestrans2020](https://forum.freemdict.com/u/filestrans2020)\
发布日期： [2022 年6 月 6 日 00:07 UTC](https://forum.freemdict.com/t/topic/13394/6 "2022-06-06T00:07:03Z")

</div>

没有隔壁账号，能分享在这里么？

---

<div class="post-metadata">

作者： ![xiaoyifang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/x/df788c/32.png) [@xiaoyifang](https://forum.freemdict.com/u/xiaoyifang)\
发布日期： [2022 年6 月 7 日 00:54 UTC](https://forum.freemdict.com/t/topic/13394/7 "2022-06-07T00:54:09Z")

</div>

> [@xiaoyifang](#):
>
> 考虑后续直接让gd支持entry://xxxxx 得了

转11#。。。。。。

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2022 年6 月 7 日 01:21 UTC](https://forum.freemdict.com/t/topic/13394/8 "2022-06-07T01:21:07Z")

</div>

最新的版本是在github吧？下载中：[6.3.0-GoldenDict-Windows.b2e97285-001826.zip](https://github.com/xiaoyifang/goldendict/releases/download/v22.5.22-alpha.220607.b2e97285/6.3.0-GoldenDict-Windows.b2e97285-001826.zip)

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2022 年6 月 7 日 02:00 UTC](https://forum.freemdict.com/t/topic/13394/10 "2022-06-07T02:00:51Z")

</div>

在最新版GD中测试了一下，还是不行：js应该是启用了，因为查询一个单词，它会识别出该单词所在的群组`(g1)`，但点击js相关的链接却不能跳转。

我的粗浅理解：GD加载页面时，会运行js，并将相关变量转为html显示出来；页面加载后，js函数无法触发GD的查询动作。

![image](https://forumcdn.freemdict.com/uploads/default/original/3X/9/8/98185a86038d8f0e4b83b9dd28dc0aec00fc329b.png)

以下是原开发者之前的反馈，FYI：

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/b/6/b69b57e4d0a4f77fdbe9ef0c9e684b10f0de4134.png)

---

<div class="post-metadata">

作者： ![xiaoyifang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/x/df788c/32.png) [@xiaoyifang](https://forum.freemdict.com/u/xiaoyifang)\
发布日期： [2022 年6 月 7 日 02:20 UTC](https://forum.freemdict.com/t/topic/13394/11 "2022-06-07T02:20:57Z")

</div>

后续我看下，应该是这个原因，

> [@Vim](#):
>
> GD加载页面时，会运行js，并将相关变量转为html显示出来；页面加载后，js函数无法触发GD的查询动作

这个版本可以了。@Vim  
[支持entry的gd版本](https://github.com/xiaoyifang/goldendict/releases/download/v22.5.22-alpha.220608.7820146d/6.3.0-GoldenDict-Windows.7820146d-003301.zip)

代码实现的方式不是很满意，后续会继续调整下。

---

<div class="post-metadata">

作者： ![xiaoyifang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/x/df788c/32.png) [@xiaoyifang](https://forum.freemdict.com/u/xiaoyifang)\
发布日期： [2022 年6 月 8 日 02:13 UTC](https://forum.freemdict.com/t/topic/13394/12 "2022-06-08T02:13:28Z")

</div>

![image](https://forumcdn.freemdict.com/uploads/default/original/3X/6/c/6ca7e8e129b730fd29ca2398a53744bd1e0ef15e.png)

额外发现了个bug。对于命中多词条的情况，红框中的点击，mdict中js会出错，固定跳到undefined（js错误）

---

<div class="post-metadata">

作者： ![Vim](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/vim/32/8408_2.png) [@Vim](https://forum.freemdict.com/u/Vim)\
发布日期： [2022 年6 月 8 日 03:08 UTC](https://forum.freemdict.com/t/topic/13394/13 "2022-06-08T03:08:15Z")

</div>

已用上，可以了！强大！感谢！！

---

<div class="post-metadata">

作者： ![xiaoyifang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/x/df788c/32.png) [@xiaoyifang](https://forum.freemdict.com/u/xiaoyifang)\
发布日期： [2022 年6 月 21 日 03:51 UTC](https://forum.freemdict.com/t/topic/13394/14 "2022-06-21T03:51:01Z")

</div>

> [@xiaoyifang](#):
>
> 额外发现了个bug。对于命中多词条的情况，红框中的点击

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/7/9/7928d87e2e834731fa07011a7dc172f09b9300cc.png)

这种情况下，如果页面上的状态是没有选中的分组。点击随机会出现死循环。

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/5/3/5316895a10c94e3e007d9325e52c89fa04cb6142.png)

---

<div class="post-metadata">

作者： ![leihn](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/l/53a042/32.png) [@leihn](https://forum.freemdict.com/u/leihn)\
发布日期： [2022 年7 月 28 日 03:24 UTC](https://forum.freemdict.com/t/topic/13394/15 "2022-07-28T03:24:02Z")

</div>

不知道怎么下载呀
