Greasy Fork

Greasy Fork is available in English.

必应 - 高亮显示搜索结果中的关键词(类似百度)

try to take over the world!

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         必应 - 高亮显示搜索结果中的关键词(类似百度)
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *://*.bing.com/search?q=*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    /*
    思路:
    总:bing本身已经在网站描述那里把关键词用<strong>标签包起来了,所以只需要给<strong>标签添加一个一颜色属性就行。
    重点是搜索结果的标题,需要自己给关键词添加<strong>标签。

    匹配方式:汉字采用逐字+ 匹配;字母按连在一起的字母为一个单位来匹配。

    */

    //获取搜索关键词
    let Neo_key_word = document.getElementById("sb_form_q").value

    //是否有字母
    var have_zimu = true

    let zimu_list

    //如果有字母就获取关键词中【连续】的字母,否则跳过
    if(Neo_key_word.match(/\w+/g) == null){
        have_zimu = false
    }else{
        zimu_list = Neo_key_word.match(/\w+/g)

        //字母正则字符串
        let reg_zimu_str = ""

        //去掉关键词中的字母/单词,顺便构建一下匹配字母/单词的正则字符串
        for(let i = 0; i < zimu_list.length; i++){
            Neo_key_word = Neo_key_word.replace(zimu_list[i],"")

            //把字母/单词数组做成正则字符串
            reg_zimu_str = reg_zimu_str +"|"+ zimu_list[i]
        }
        reg_zimu_str = "("+reg_zimu_str.replace("|","")+")"

        //构建字母正则
        var reg_zimu = new RegExp("("+reg_zimu_str +")","gi");
        have_zimu = true
    }


    //把关键词里面含有的正则符号转义
    Neo_key_word =Neo_key_word.replace(/([\!\$\%\^\*\(\)\{\}\[\]\=\+\-\?\<\>\.\,])/g,"\\$1")


    //构建匹配关键词的正则表达式
    var reg = new RegExp("(["+Neo_key_word+"]+)","gi");

    //获取所有结果的标题
    let all_title = document.querySelectorAll(".b_algo h2 a")
    //let all_title = document.querySelectorAll("a")

    //给匹配reg正则的字词加上<strong>标签
    for(let i=0; i <all_title.length ; i++){
        //给汉字添加<strong>标签
        all_title[i].innerHTML = all_title[i].innerHTML.replace(reg,"<strong>$1</strong>")

        if(have_zimu == true){
            //给字母添加<strong>标签
            all_title[i].innerHTML = all_title[i].innerHTML.replace(reg_zimu,"<strong>$1</strong>")
        }
        //顺便修改一下【字体大小】(感觉之前的太大了,有点占地方)
        all_title[i].style.fontSize = "17px"
    }

    //给每个<strong>标签添加颜色
    let all_strong_tag = document.querySelectorAll("strong")
    for(let i=0; i<all_strong_tag.length; i++){
        all_strong_tag[i].style.color = "#c00"//【高亮字体颜色】
    }

})();