您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
百度拜拜。功能 1、搜索时排除百家号; 2、阻止搜索框占位关键词推广。 启用或者禁用百度拜拜: 1、白名单包括 放假、万年历、[快递单号] ; 2、输入框内使用快捷键 【Ctrl+K】切换启用或者禁用。
- // ==UserScript==
- // @name bye-dude
- // @namespace https://greasyfork.org/users/866159
- // @version 0.0.4
- // @description 百度拜拜。功能 1、搜索时排除百家号; 2、阻止搜索框占位关键词推广。 启用或者禁用百度拜拜: 1、白名单包括 放假、万年历、[快递单号] ; 2、输入框内使用快捷键 【Ctrl+K】切换启用或者禁用。
- // @author Song
- // @match *://www.baidu.com
- // @match *://www.baidu.com/s?*
- // @icon https://www.baidu.com/favicon.ico
- // @license MIT
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- // -(site:baijiahao.baidu.com)
- const excludeSites = ['baijiahao.baidu.com', 'csdn.net'];
- const ignoreWords = ['假期', '放假', '万年历'];
- /**
- * 常见快递单号特征:纯数字12-18位 / 字母+数字组合10-20位
- * @type {RegExp[]}
- */
- const expressPatterns = [
- /^\d{12,18}$/, // 纯数字型(如顺丰、韵达)
- /^[A-Za-z0-9]{10,20}$/, // 字母数字混合(如EMS、京东)
- /^[A-Za-z]{2}\d{9,11}$/, // 2字母开头+数字(如圆通YT开头)
- /^SF\d{12}$/ // 顺丰特殊格式
- ];
- const byeDu = {
- enabled: true,
- toggle() {
- this.setEnabled(!this.enabled)
- return this.enabled;
- },
- setEnabled(enabled) {
- this.enabled = enabled;
- let btn = document.querySelector('.s_btn')
- if (btn) {
- btn.style.transition = 'background-color 0.4s ease';
- btn.style.borderColor = btn.style.backgroundColor = enabled ? '#04AA6D' : '#3385ff';
- setTimeout(() => btn.value = enabled ? '百度两下' : '百度一下', 300)
- } else {
- console.warn('[bye-du]', '未找到搜索按钮')
- }
- }
- }
- /**
- * 疑似快递单号
- * @param {string} num 待检测字符串
- * @returns {boolean} 是否为疑似快递单号
- */
- function likeExpressNumber(num) {
- if (num.length < 10) return false;
- return expressPatterns.some(pattern => pattern.test(num));
- }
- /**
- *
- * @param {string} word
- * @return {boolean}
- */
- function shouldIgnore(word) {
- for (let w of ignoreWords) {
- if (word.indexOf(w) > -1) {
- return true;
- }
- }
- return likeExpressNumber(word);
- }
- function beforeSubmit() {
- const input = document.querySelector('#kw');
- input.addEventListener('keydown', (e) => {
- if (e.ctrlKey && e.key === 'k') {
- e.preventDefault(); // 阻止默认行为(如浏览器搜索快捷键)
- byeDu.toggle();
- console.log('Ctrl+K 被按下');
- // 在这里添加你的自定义逻辑
- }
- })
- input.addEventListener('focus', () => {
- let w = input.value;
- if (w.length > 7) {
- excludeSites.forEach(s => {
- w = w.replaceAll(` -site:${s}`, '');
- });
- console.info('focus 处理后', w)
- input.value = w;
- } else {
- console.info('focus value', w.length, w)
- }
- });
- document.querySelector('#form')
- .addEventListener('submit', (_e) => {
- const w = input.value;
- if (!byeDu.enabled) return;
- if (shouldIgnore(w)) return;
- const sites = excludeSites.map(s => `-site:${s}`).filter(s => w.indexOf(s) < 0);
- if (sites.length > 0) {
- input.value = w.trim() + ' ' + sites.join(' ');
- }
- }, {capture: true});
- }
- function clearPlace() {
- const input = document.querySelector('#kw');
- input.placeholder = '';
- Object.defineProperty(input, 'placeholder', {
- set(value) {
- console.info('prevent set placeholder to', value)
- },
- get() {
- return '';
- }
- })
- }
- clearPlace();
- byeDu.setEnabled(true);
- beforeSubmit();
- })();