在普通浏览器里一个网页里放一本词典还差不多,多了恐怕要打架
iframe 是个好东西,但有限制,像插件在这里面几乎都废了,没几个能针对到iframe的,打印也会出现只有一部分的问题
在普通浏览器里一个网页里放一本词典还差不多,多了恐怕要打架
iframe 是个好东西,但有限制,像插件在这里面几乎都废了,没几个能针对到iframe的,打印也会出现只有一部分的问题
如果你是想要隔离 JS,只能 iframe 。
如果你是想隔离 CSS,可以将各个词典放到单独的 tag class 下面,然后 CSS 对应修改加上 class 选择器。
遗憾的是不少词典得依赖js,看着没多少可交互的js却不小
直接用 iframe 就可以了,苹果内置词典也是这个方案,iframe 的缺点就是同时加载几十部词典会卡顿,但大多数用户没有这么多词典,是 mdx 词典隔离的最佳方案。
goldendict-ng 昨天也有人建议使用这个方案:
用 iframe 插件就用不了了,这代价太大了,词典软件里咋造都行
试了试goldendict ng居然还能把goldendict的索引给干没了,网页感觉卡顿丢帧不知道是啥原因,mdx的<a 音频不识别,调试工具有bug,还把鼠标中键滚动的功能给砍了……
再用goldendict居然ng还得重建索引,这俩软件咋还能打起架来……
你用的哪个版本的 ng? 现在的 ng 没有这些问题。
Latest stable,还是说pre 没这些问题了?
我用的去年 11 月的版本没有这些问题。
<a 音频那bug最后发现是词典js的问题,把软件注入的listener给截了,在那坨词典的js里的逻辑貌似是检测到chrome桌面环境就去找在线音频,mdd里的文件都成摆设了,真是逆天逻辑
MDX 这类问题特别多,主要是因为词典作者自行编写的 JavaScript 质量参差不齐,也很难兼顾不同开发商不同平台的词典软件,更合理的做法是由格式作者这边提供标准化的 HTML 模板片段和 class 组件(如显示/隐藏,AI 翻译,TTS 发音等等),还有公共的导航和悬浮组件,词典作者只需按规范写 HTML 就可以了。
这样好处很多,没有 JavaScript 兼容问题,也不需要使用 iFrame,因为都是标准化的 HTML 片段,还可以考虑增加专门的带语义的 class 类用于义项、例句或者类似的标注,软件开发者这边也有更多的施展空间。
在线音频下载下来一看和mdd里的居然是一样的,这意义何在……难不成在线的缩水了吗……