网站url中没有搜索的单词,如何配置到gd-ng中

https://leapx.top/ 为例
配置的时候,url 输入 https://leapx.top?word=%GDWORD%
然后注入script脚本。

注入的脚本要做几件事情:
1,读取url中的word参数
2,将第1步读到的数据,输入到文本框wordInput
3, 模拟按钮actionBtn点击事件
4,(可选)有的网站是加载后才开始加载数据,script脚本要延迟执行,比如1秒。
5,script脚本要等document ready之后执行,如果已经ready,延迟或直接执行。

上面的 要求扔给deepseek,会给出一段js脚本。

(function() {
    // 延迟执行函数
    function executeWithDelay(callback, delay) {
        setTimeout(callback, delay);
    }
    
    // 主要逻辑函数
    function mainLogic() {
        // 解析URL获取word参数
        const urlParams = new URLSearchParams(window.location.search);
        const wordValue = urlParams.get('word');
        
        // 如果存在word参数
        if (wordValue !== null) {
            // 获取文本框和按钮元素
            const wordInput = document.getElementById('wordInput');
            const actionBtn = document.getElementById('actionBtn');
            
            // 如果文本框存在,设置其值
            if (wordInput) {
                wordInput.value = decodeURIComponent(wordValue);
                
                // 触发相关事件,确保其他监听器能感知到变化
                ['input', 'change', 'keyup'].forEach(eventType => {
                    wordInput.dispatchEvent(new Event(eventType, { bubbles: true }));
                });
            }
            
            // 如果按钮存在,触发点击事件
            if (actionBtn) {
                // 先尝试直接调用click方法
                if (typeof actionBtn.click === 'function') {
                    actionBtn.click();
                } else {
                    // 备选方案:创建事件并分发
                    const clickEvent = new MouseEvent('click', {
                        view: window,
                        bubbles: true,
                        cancelable: true
                    });
                    actionBtn.dispatchEvent(clickEvent);
                }
            }
        }
    }
    
    // 检查文档加载状态并执行
    function init() {
        // 延迟1000毫秒执行
        executeWithDelay(mainLogic, 1000);
    }
    
    // 检查文档是否已加载完成
    if (document.readyState === 'loading') {
        // 文档还在加载,监听DOMContentLoaded事件
        document.addEventListener('DOMContentLoaded', init);
    } else {
        // 文档已加载完成,直接执行
        init();
    }
})();

将脚本放到脚本框


也可以是保存到文件,然后上面框里直接给出文件路径。

配合这个选项

具体参考:Website Scripting - GoldenDict-ng

2 个赞