前言
因看到最近各位佬友对论坛的搜索按钮的吐槽
所有趁着有时间临时写了一个脚本来处理一下
(这里推荐平常搜索在搜索栏输入完后直接按回车 不使用这个搜索按钮)
脚本
代码
// ==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});
})();
最后
这份脚本是临时写的 没有太多的进行处理 主打的就是一个又不是不能用
当然如果各位佬友有更好的方案欢迎分享