您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Change bing.com results to have the url shown after the title, also adds color to the urls for better readability and adds a favicon to the urls under the title. Based on `aligo/better-google` userscript.
// ==UserScript== // @name Better Bing // @namespace bing // @version 0.1 // @description Change bing.com results to have the url shown after the title, also adds color to the urls for better readability and adds a favicon to the urls under the title. Based on `aligo/better-google` userscript. // @author aligo, adambh, tejaslodaya, drwonky, ZeroCool940711 // @license MIT // @supportURL https://github.com/ZeroCool940711/Better-Bing-UserScript // @match https://www.bing.com/search?* // @grant none // @run-at document-start // ==/UserScript== (function() { 'use strict'; var betterBingRow = function(el) { var linkEl = el.querySelector('.b_title > h2 > a') || el.querySelector('.b_algo > h2 > a') || el.querySelector('.b_imagePair.square_mp.reverse > h2 > a'); var urlEl = el.querySelector('.tpcn'); if (linkEl && urlEl) { var betterEl = document.createElement('div'); betterEl.className = 'btrG'; var betterLinkEl = document.createElement('a'); betterLinkEl.href = linkEl.href; betterLinkEl.target = '_blank'; betterLinkEl.className = 'btrLink'; betterLinkEl.innerText = linkEl.innerText; var betterUrlEl = document.createElement('cite'); betterUrlEl.className = 'btrUrl'; betterUrlEl.innerHTML = urlEl.innerHTML.replace(/<br>.*$/, ''); betterEl.appendChild(betterLinkEl); betterEl.appendChild(betterUrlEl); // Remove the original title element from btrG, if any var titleEl = betterEl.querySelector('.btrLink'); if (titleEl) { betterEl.removeChild(titleEl); } // Insert the new div after the h2 element inside b_imagePair square_mp reverse var h2El = el.querySelector('.b_imagePair.square_mp.reverse > h2'); if (h2El) { h2El.after(betterEl); } else { // Insert the new div after b_title if h2 element is not found el.querySelector('.b_title, h2').after(betterEl); } // Remove the original tpcn div urlEl.remove(); } }; var prevResultCount = 0; var bettered = false; var runBetterBing = function() { var b_results = document.getElementById('b_results'); if (b_results) { var b_algo = b_results.querySelectorAll('.b_algo'); if (b_algo.length > prevResultCount) { for (var i = prevResultCount; i < b_algo.length; i++) { if (!b_algo[i].classList.contains('b_ans') && !b_algo[i].classList.contains('b_mop')) { betterBingRow(b_algo[i]); } } prevResultCount = b_algo.length; } } if (!bettered) { if (MutationObserver) { var searchEl = document.getElementById('b_content'); var observer = new MutationObserver(runBetterBing); observer.observe(searchEl, { childList: true, subtree: true }); } bettered = true; } }; var prepareStyleSheet = function() { var style = document.createElement('style'); style.setAttribute('media', 'screen'); style.appendChild(document.createTextNode('')); document.head.appendChild(style); style.sheet.insertRule('.btrG .btrLink { display: block; font-size: 16px; color: #1a0dab; text-decoration: none; }'); style.sheet.insertRule('.btrG .btrLink:hover { text-decoration: underline; }'); style.sheet.insertRule('.btrG .btrUrl { display: block; font-size: 14px; color: #006621; }'); }; var checkElementThenRun = function(selector, func) { if (!document.querySelector(selector)) { if (MutationObserver) { var observer = new MutationObserver(function() { var el = document.querySelector(selector); if (el) { observer.disconnect(); func(); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); } else { document.addEventListener('readystatechange', function(e) { if (document.readyState == 'complete') { func(); } }); } } else { func(); } }; checkElementThenRun('head', prepareStyleSheet); checkElementThenRun('#b_results', runBetterBing); })();