您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Execute commands on Bing and all its subdomains
当前为
// ==UserScript== // @name Bing简化 | 主要适配vivaldi浏览器 | 点击右上角三横线开启关闭历史记录 // @namespace http://tampermonkey.net/ // @version 0.1 // @description Execute commands on Bing and all its subdomains // @author You // @match *://*bing.com/* // @grant none // @license MIT // ==/UserScript== (function () { ("use strict"); // 添加一个变量来记录元素的状态 let isRemoved = true; // 添加一个变量用来记录是否是第一次运行 let isNotOne = false; // 添加一个变量用来记忆元素 let sideParent; let side; // 将点击代码封装成一个函数 function clickFunction() { let element = document .querySelector("#b_sydConvCont > cib-serp") .shadowRoot.querySelector("#cib-conversation-main > cib-side-panel"); if (!sideParent) { sideParent = element.parentNode; side = element; } else { element = side; } let parent = sideParent; let bar = document .querySelector("#b_sydConvCont > cib-serp") .shadowRoot.querySelector("#cib-action-bar-main"); if (isNotOne) { if (isRemoved) { // 如果元素已被删除,则恢复它 parent.appendChild(element); isRemoved = false; bar.shadowRoot.querySelector("div").style.marginLeft = "20px"; bar.shadowRoot.querySelector( "div > div.main-container.body-2 > div.input-container.as-ghost-placement" ).style.width = "600px"; } else { // 如果元素未被删除,则删除它 parent.removeChild(element); isRemoved = true; bar.shadowRoot.querySelector("div").style.marginLeft = "300px"; bar.shadowRoot.querySelector( "div > div.main-container.body-2 > div.input-container.as-ghost-placement" ).style.width = "900px"; } } else { // 第一次点击按钮运行则执行下面语句 parent.removeChild(element); if (document.querySelector("body > div.mfa_rootchat")) { document.querySelector("body > div.mfa_rootchat").remove(); } document .querySelector("#b_sydConvCont > cib-serp") .shadowRoot.querySelector("cib-serp-feedback") .remove(); bar.shadowRoot.querySelector("div").style.marginLeft = "300px"; bar.shadowRoot.querySelector( "div > div.main-container.body-2 > div.input-container.as-ghost-placement" ).style.width = "900px"; isNotOne = true; } } // 等待页面加载完成 window.addEventListener("load", function () { // 获取<a>标签元素 let aElement = document.querySelector("#id_sc"); // 将clickFunction函数绑定到<a>标签的点击事件上 aElement.addEventListener("click", clickFunction); document.querySelector("#id_hbfo").remove(); document.querySelector("body > div.mfa_rootchat").remove(); document.querySelector("#id_rh").remove(); document.querySelector("#qs_searchBoxOuter").remove(); }); // 监听滚轮事件 window.addEventListener("wheel", (e) => { if (e.target.className.includes("cib-serp-main")) e.stopPropagation(); }); // 监听触摸移动事件 window.addEventListener("touchmove", (e) => { e.stopImmediatePropagation(); }); // 监听键盘按键事件("keydown") window.addEventListener("keydown", (e) => { if (e.code === "Space") { e.stopImmediatePropagation(); } }); // 每隔2000毫秒运行一次 setInterval(function () { if (document.querySelector("#b_sydConvCont > cib-serp")) { // 获取顶层 shadow root const serp = document.querySelector( "#b_sydConvCont > cib-serp" ).shadowRoot; // 获取第二层 shadow root,并获取所有 turn const main = serp.querySelector("#cib-conversation-main").shadowRoot; const turns = main.querySelectorAll("#cib-chat-main > cib-chat-turn"); turns.forEach((turn) => { // 获取每个 turn 的 shadow root const turnRoot = turn.shadowRoot; if ( turnRoot.querySelector("cib-message-group.response-message-group") ) { // 获取 message group const messageGroup = turnRoot.querySelector( "cib-message-group.response-message-group" ).shadowRoot; // 获取所有 message const messages = messageGroup.querySelectorAll("cib-message"); messages.forEach((message) => { // 获取每个 message 的 shadow root const messageRoot = message ? message.shadowRoot : ""; if ( messageRoot.innerHTML && messageRoot.innerHTML.includes("cib-feedback") ) { messageRoot.querySelector("cib-feedback").remove(); messageRoot.querySelector(".content.footer").remove(); } if ( messageRoot.innerHTML && messageRoot.innerHTML.includes("cib-shared") ) { if (messageRoot.querySelectorAll("cib-code-block").length) { messageRoot .querySelectorAll("cib-code-block") .forEach((item) => { if (item.shadowRoot) { const itemNode = item.shadowRoot.querySelector(".code-header"); if (itemNode) { itemNode.remove(); } } }); } } }); } }); } // 删除未知元素,适配谷歌浏览器 if (document.querySelector("#b_content")) { document.querySelector("#b_content").remove(); } }, 1000); })();