有没有大佬能加上义项展开的开关和快捷键

精装 - 牛精九 online - #120,来自 Riley 这个帖子的。

1.例句太长了


2.加在那里,比较笨。谢谢

好吧,谢谢。

OK。麻烦了

类似于这个效果?

折叠前:

折叠后:

对对,怎么搞的?

厉害,欧路里折叠了,但2.3功能没有用

我用的也是欧路词典。

  1. 右侧空白指的是义项结尾处,不能离太远。

  2. 悬浮窗是右上角的那个,我测试下来都能用。

没用 :pensive:,你放在哪个个位置的

2和3都不能用吗?你用的是哪个平台,Windows?

对的,是win.

直接把你更改后的js给我,试试看。其他的应该一样吧

花了点时间去调这个 BUG,好像是 Windows 版本欧路的问题。原先的代码我在 Windows 上测试了确实不行,但是 iPhone/iPad 上都是可以的。

还是让 ChatGPT 帮我加个按钮调日志,监听点击的脚本竟然运行了两次,于是乎变成了点击没反应。

以下是修改后的代码,测试了 Windows/iPhone/iPad 都是能用的。

document.addEventListener('DOMContentLoaded', () => {
    if (window.scriptExecuted) return;
    window.scriptExecuted = true;

    const elementsSelector = '.x-gs, .collapse';
    const toggleVisibility = (elements, display) => elements.forEach(e => e.style.display = display);

    setTimeout(() => {
        // Expand all collapsible elements with the specified title
        document.querySelectorAll('.collapse[title="Oxford Collocations Dictionary"] .heading')
            .forEach(headingElement => headingElement.click());

        // Hide elements with the specified class by default
        document.querySelectorAll(elementsSelector).forEach(e => e.style.display = 'none');

        // Add click event listeners to elements with the specified class
        document.querySelectorAll('.def.translation_individual').forEach(element => {
            element.addEventListener('click', function () {
                const elements = this.parentElement.querySelectorAll(elementsSelector);
                const display = elements[0].style.display === 'none' ? 'block' : 'none';
                toggleVisibility(elements, display);
            });
        });

        // Add click event listener to the gear menu
        const gearMenu = document.getElementById('_OALD9_gear');
        if (gearMenu) {
            const gearHead = gearMenu.querySelector('._gear-ico');
            if (gearHead) {
                gearHead.addEventListener('click', function () {
                    const elements = document.querySelectorAll(elementsSelector);
                    const display = elements[0].style.display === 'none' ? 'block' : 'none';
                    toggleVisibility(elements, display);
                });
            }
        }
    }, 0);
});

测试 Windows 的时候,直接点击某个义项上的文本就可以展开/折叠(可能会误触到选词,不过没想到什么改进的方法了)。其他触控的平台 iPhone/iPad,还是点义项结尾旁边的空白处。

这段代码设置的是,默认隐藏例句、自动展开 Collocations ,可以根据需求修改或者注释掉。

1 个赞

太厉害了,麻烦你了! :kissing_heart:

爱了。。。。。。

好像有问题,有那个按钮,但没有用

我的没有用。

两个文件都换了吗,不行就用原来的吧。

对,OK。。

Hi 最近准备换牛津十,同时还用着牛津九

测试的时候发现,有按钮但是点不了的情况神奇地复现了 :innocent:

如果你也是同时用,那可能遇到的是同一个问题,我再和你说下怎么修