【油猴脚本】搜索按钮处理

前言

因看到最近各位佬友对论坛的搜索按钮的吐槽
所有趁着有时间临时写了一个脚本来处理一下
(这里推荐平常搜索在搜索栏输入完后直接按回车 不使用这个搜索按钮)

脚本

代码
// ==UserScript==
// @name         Linux do 搜索
// @namespace    http://tampermonkey.net/
// @version      0.0.1
// @description  搜索按钮
// @author       Hua
// @match        https://linux.do/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let inputContent = '';
    let lastURL = '';

    function ob(param) {
        let observer = new MutationObserver((mutations, obs) => {
            const input = document.getElementById(param); // 使用实际的输入框选择器
            if (input) {
                // 当输入框存在时,添加事件监听器来实时更新变量内容
                input.addEventListener('input', function() {
                    inputContent = input.value; // 更新变量
                });
                // 输入框已找到并绑定了事件处理器,断开观察者
                obs.disconnect();
            }
        });

        // 配置observer,以观察子节点的变化
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    }

    // 用于检查URL变化并执行相应操作的函数
    function checkURLChange() {
        let currentURL = window.location.href; // 获取当前URL
        // 如果URL以特定字符串开头
        if (currentURL.startsWith('https://linux.do/search')) {
            if (localStorage.getItem('LinuxDoSearch') === '0' && inputContent !== null && inputContent !== undefined && inputContent !== '') {
                localStorage.setItem('LinuxDoSearch', '1');
                // 执行特定于搜索页面的操作
                window.location.href = `https://linux.do/search?expanded=true&q=${encodeURIComponent(inputContent)}`;
            }
        } else {
            if (currentURL !== lastURL) {
                localStorage.setItem('LinuxDoSearch', '0')
                lastURL = currentURL; // 更新最后检测到的URL
                inputContent = '';
                ob('search-term')
            }
        }
    }
    const observer = new MutationObserver(checkURLChange);
    observer.observe(document.body, {childList: true, subtree: true});
})();

最后

这份脚本是临时写的 没有太多的进行处理 主打的就是一个又不是不能用
当然如果各位佬友有更好的方案欢迎分享

9 Likes

大神 牛 一会学习一下

女神!爱你 :heart_eyes:

1 Like

来了来了 :star_struck:

1 Like

前排前排

实用,感谢感谢 :+1:

牛哇牛哇

1 Like

华哥再再再一次出手了~

天下苦搜索久矣

泰裤辣,又多一个脚本

哈哈,这个回复精辟

1 Like

水水 :grinning: :laughing:

实用

行动力太强了,华哥

炒菜班子

1 Like

主打一手,又不是不能用 :melting_face:

你就说有没有解决问题 :crazy_face:

1 Like

刚写了个 自动回复的脚本,我不知道 要不要放出来。。

你怕是没被禁过

1 Like

666