BaiduNav - 百度首页优化

百度首页样式调整,删除多余元素,导航优化,导航图标获取,自定义搜索框透明度,专注首页导航页,支持登录(不可用)、未登录(不可用)状态,打造整洁好用的首页,优化首页体验

  1. // ==UserScript==
  2. // @name BaiduNav - 百度首页优化
  3. // @namespace shangandeyu
  4. // @version 1.1.1
  5. // @description 百度首页样式调整,删除多余元素,导航优化,导航图标获取,自定义搜索框透明度,专注首页导航页,支持登录(不可用)、未登录(不可用)状态,打造整洁好用的首页,优化首页体验
  6. // @author shangandeyu
  7. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABjElEQVRoge2YbbHDIBBFj4RIiIRIiIRKiIRKwEElREIlREIlVEIk9P0gvEmYQCAfsMzkzOw/ZnqXewNb4Obm5mqq3AKOoIBxqjqrkkgq4A38ZqVyCoqhAb4sxRfTQIuOiy2+iAYUbvGiG1jLezENuPJeRAMt/siIbkARJ/4HfHIItQnNu6+JOrVoQ0zet+qZWHt03kW5oS4Qf+TjroAOHeV2a+GRvMe60QSIbyxNo2/hWXmPqZdDT4X+buwkrDbQrixMWbYb9q7baxeozOLn1U/l0/M2wlPm/fTI5cr7GdVR6M6begAMAoTsrRb0bfgRIGZPLUaSpwBBsaWwaAS5YZ5jfGv+j1GbnG6M0++bBzGflsHVAGg3hsTiB9ZnIpcW5yw0J4UbZtf3aAmiQl/rV+16HSoE7UaPbto1/DnpOG9WGpkuotSc4UaPgFfrjn0zVJZd9xHjhoinlTViJtqQv47ZeBHWhMqkL4hQN0Q7AXqXfUdo9lMoBNdwKO4k2sKMALtuT0mIz/3NTWn8ARfzVP7n/lZLAAAAAElFTkSuQmCC
  8. // @license GPL-3.0
  9. // @run-at document-end
  10. // @match https://www.baidu.com/
  11. // @grant GM_xmlhttpRequest
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // @grant unsafeWindow
  15. // @connect *
  16. // ==/UserScript==
  17.  
  18. (function() {
  19. 'use strict';
  20. let $ = unsafeWindow.jQuery;
  21. let user = document.getElementById("s_username_top");
  22. if(user == null) user = document.getElementById("s-top-username");
  23. if(user != null){
  24. if($("#s_menu_mine").children('.s-menu-item-underline').length > 0) {
  25. document.getElementsByTagName("html")[0].style.overflow="auto";
  26. document.body.style.overflow="auto";
  27.  
  28. document.getElementsByClassName("set-btn set-edit")[0].addEventListener('click',function(){document.getElementById("sui-dialog-mask").remove()});
  29.  
  30. // document.getElementById("lg").style.height="50px";
  31. // document.getElementById("lg").style.minHeight="50px";
  32.  
  33. // document.getElementById("head_wrapper").style.height="0px";
  34. // document.getElementById("head_wrapper").style.minHeight="0px";
  35. // document.getElementById("head").style.minHeight="0px";
  36. // document.getElementById("head").style.overflow="auto";
  37.  
  38. // document.getElementById("s_fm").style.height="0px";
  39. // document.getElementById("s_fm").style.minHeight="0px";
  40.  
  41. // document.getElementById("s_lg_img").remove();
  42. // document.getElementById("s_lg_img_new").remove();
  43.  
  44. // document.getElementById("s_icons").innerHTML = '<a class="s-skin" href="#" onclick="return false;" data-tid="2001" title="换肤" style="visibility:hidden"><span class="s-icon s-icon-skin"></span><span class="title">换肤</span></a>';
  45. // document.getElementById("s_icons").style.opacity = 0;
  46. // document.getElementById("s_icons").addEventListener('mouseenter',function(){
  47. // document.getElementById("s_icons").style.opacity = 1;
  48. // });
  49. // document.getElementById("s_icons").addEventListener('mouseleave',function(){
  50. // document.getElementById("s_icons").style.opacity = 0;
  51. // });
  52. // document.getElementsByClassName("show-vertical")[0].style.visibility="hidden";
  53.  
  54. // let len = document.getElementsByClassName("mnav").length;
  55. // for(let i = 0; i < len; i++){
  56. // let mnav = document.getElementsByClassName("mnav")[0];
  57. // if (mnav != null) {
  58. // mnav.parentNode.removeChild(mnav);
  59. // }
  60. // }
  61.  
  62. // document.getElementById("s_wrap").style.marginTop = "91px";
  63.  
  64. // document.getElementsByClassName("s-block-container")[0].style.paddingTop = "10px";
  65. document.getElementById("s_menu_gurd").remove();
  66.  
  67. // document.getElementsByClassName("c-color-text")[0].innerHTML = "";
  68. // GM_xmlhttpRequest({
  69. // method: 'GET',
  70. // url: 'http://open.iciba.com/dsapi/',
  71. // responseType: "json",
  72. // onload: response => {
  73. // document.getElementsByClassName("c-color-text")[0].innerHTML = response.response.note;
  74. // },
  75. // onerror: function(res) {
  76. // document.getElementsByClassName("c-color-text")[0].innerHTML = "那些无法看破的叹息,某天会是看淡的风景,虽然那风景,永远有谁缺席。";
  77. // }
  78. // });
  79.  
  80. // let setBar = document.getElementsByClassName("set-bar-content")[0];
  81. // let setMenu = setBar.getElementsByTagName("div")[0];
  82. // setBar.style.width = setMenu.offsetWidth+"px";
  83. // setBar.style.height = setMenu.offsetHeight+"px";
  84. // setMenu.style.display = "none";
  85. // setBar.addEventListener("mouseenter", function(){
  86. // setMenu.style.display = "";
  87. // });
  88. // setMenu.addEventListener("mouseleave", function(){
  89. // setMenu.style.display = "none";
  90. // });
  91.  
  92. // document.getElementsByName("tj_briicon")[0].remove();
  93. // document.getElementById("s_usersetting_top").style.paddingRight = "4%";
  94.  
  95. // document.getElementById("s_content_100").setAttribute('data-loaded', '1');
  96. // document.getElementsByClassName("rect")[0].remove();
  97.  
  98. // document.getElementById("bottom_layer").remove();
  99. // document.getElementById("bottom_space").remove();
  100.  
  101. // document.getElementsByClassName("p-sidebar js-player-open")[0].remove();
  102. // document.getElementsByClassName("qrcode-layer icon-mask-wrapper")[0].remove();
  103.  
  104. let icondiv = document.getElementsByClassName("nav-icon-normal");
  105. if(icondiv.length > 0) {
  106. let ids = new Array();
  107. for(let i = 0; i < icondiv.length; i++) {
  108. // if("" == icondiv[i].innerHTML) {
  109. // continue;
  110. // }
  111. let url = icondiv[i].parentNode.href;
  112. let domain = url.split('/');
  113. let src = "";
  114. for(let j = 0; j < domain.length && j < 3; j++) {
  115. src += domain[j];
  116. if(domain[j].indexOf("http") > -1) {
  117. src += "//";
  118. }
  119. }
  120. src += "/favicon.ico";
  121. if (!GM_getValue(src)) {
  122. GM_xmlhttpRequest({
  123. method: "GET",
  124. url: src,
  125. synchronous: true,
  126. responseType: "blob",
  127. context: {"src": src, "div": icondiv[i]},
  128. onload: function (res) {
  129. let obj = res.context;
  130. let src = obj.src;
  131. let div = obj.div;
  132. if (res.readyState == 4 && res.status == 200 || res.status == 304) {
  133. let reader = new FileReader();
  134. reader.readAsDataURL(res.response);
  135. reader.onload = function () {
  136. let img = new Image();
  137. img.onload = function() {
  138. GM_setValue(src, reader.result);
  139. // localStorage[src] = reader.result;
  140. div.innerHTML = '<img src="' + reader.result + '" width="32px" height="32px">';
  141. div.className = "nav-icon";
  142. };
  143. img.src = res.finalUrl;
  144. }
  145. }
  146. }
  147. });
  148. } else {
  149. // icondiv[i].innerHTML = '<img src="' + localStorage[src] + '" width="32px" height="32px">';
  150. icondiv[i].innerHTML = '<img src="' + GM_getValue(src) + '" width="32px" height="32px">';
  151. icondiv[i].id = src;
  152. ids.push(src);
  153. }
  154. }
  155. for(let i = 0; i < ids.length; i++) {
  156. document.getElementById(ids[i]).className = "nav-icon";
  157. }
  158. } else {
  159. let imgs = document.getElementsByTagName("img");
  160. setImg(imgs);
  161. }
  162. } else {
  163. document.getElementsByTagName("html")[0].style.overflow="auto";
  164. document.body.style.overflow="auto";
  165.  
  166. document.getElementsByClassName("set-btn set-edit")[0].addEventListener('click',function(){document.getElementById("sui-dialog-mask").remove()});
  167.  
  168. document.getElementById("lg").style.height="50px";
  169. document.getElementById("lg").style.minHeight="50px";
  170.  
  171. // document.getElementsByClassName("s-skin-container s-isindex-wrap")[0].remove();
  172.  
  173. document.getElementById("head_wrapper").style.height="0px";
  174. document.getElementById("head_wrapper").style.minHeight="0px";
  175. document.getElementById("head").style.minHeight="0px";
  176.  
  177. document.getElementById("s_fm").style.height="0px";
  178. document.getElementById("s_fm").style.minHeight="0px";
  179.  
  180. // document.getElementById("s_icons").innerHTML = '<a class="s-skin" href="#" onclick="return false;" data-tid="2001" title="换肤" style="visibility:hidden"><span class="s-icon s-icon-skin"></span><span class="title">换肤</span></a>';
  181. document.getElementById("s_icons").style.opacity = 0;
  182. document.getElementById("s_icons").addEventListener('mouseenter',function(){
  183. document.getElementById("s_icons").style.opacity = 1;
  184. });
  185. document.getElementById("s_icons").addEventListener('mouseleave',function(){
  186. document.getElementById("s_icons").style.opacity = 0;
  187. });
  188. document.getElementsByClassName("show-vertical")[0].style.visibility="hidden";
  189.  
  190. let logoSrc = document.getElementById("s_lg_img_new").src;
  191. // document.getElementById("s_lg_img").remove();
  192. document.getElementById("s_lg_img_new").remove();
  193. logoHref(logoSrc);
  194.  
  195. document.getElementById("form").style.width = "841px";
  196. document.getElementById("form").style.left = "-12px";
  197. let fmOpacity = GM_getValue("fmOpacity");
  198. if(document.getElementsByClassName("s-skin-container s-isindex-wrap")[0].style.backgroundColor !="" && document.getElementsByClassName("s-skin-container s-isindex-wrap")[0].style.backgroundColor != "rgba(0, 0, 0, 0) none repeat scroll 0% 0%") {
  199. if(fmOpacity == null || fmOpacity == "undefined") {
  200. fmOpacity = 100;
  201. }
  202. document.getElementById("form").style.opacity = fmOpacity + "%";
  203. }
  204.  
  205. let currentMousePos = {
  206. x: 0
  207. },
  208. isDraging = false;
  209. let startDrag = function(e) {
  210. if(isDraging) {
  211. return
  212. }
  213. isDraging = true;
  214. currentMousePos = {
  215. x: e.clientX
  216. }
  217. };
  218. let draging = function(e) {
  219. if(isDraging) {
  220. doNewPos(e.clientX)
  221. }
  222. };
  223. let doNewPos = function(x, ifend) {
  224. let offset = Math.floor((x - currentMousePos.x) / 66 * 100 / 5) * 5;
  225. let newOpacity = fmOpacity + offset;
  226. if(newOpacity <= 0) {
  227. newOpacity = 0
  228. }
  229. if(newOpacity > 100) {
  230. newOpacity = 100
  231. }
  232. $("#s_fm_ajust_btn").css("left", newOpacity / 100 * 66 + "px");
  233. $("#s_fm_ajust_txt").html(newOpacity + "%");
  234. document.getElementById("form").style.opacity = newOpacity + "%";
  235. ifend && (fmOpacity = newOpacity) && GM_setValue("fmOpacity", fmOpacity);
  236. };
  237. let endDrag = function(e) {
  238. if(isDraging) {
  239. doNewPos(e.clientX, true);
  240. isDraging = false
  241. }
  242. };
  243. let fmOpacityFlag = true;
  244. let changeSkin = function() {
  245. if(fmOpacityFlag) {
  246. setTimeout(function (){
  247. document.getElementById("s_skin_layer_cell").style.width = "1076px";
  248. $("#s_skin_opacity_set").after(`<div class="s-skin-opacity-set" style="margin-left:30px" id="s_skin_fm_opacity_set"><span class="bg-hideOrShowAjax" style="visibility:visible"><span class="bg-alphaBarTitle">搜索透明度</span><span class="bg-alphaBar" id="s_fm_ajust_bar"><span class="bg-alphaBarMoveBtn" id="s_fm_ajust_btn" style="left:` + fmOpacity / 100 * 66 + `px"><em class="bg-alphaBarOpacity" id="s_fm_ajust_txt">` + fmOpacity + `%</em></span></span></span></div>`);
  249. $("#s_fm_ajust_btn").on("mousedown", function(e) {
  250. startDrag(e)
  251. });
  252. $("#s_skin_layer").on("mousemove", function(e) {
  253. e.preventDefault();
  254. draging(e)
  255. });
  256. $("#s_skin_layer").on("mouseup", function(e) {
  257. endDrag(e)
  258. });
  259. $("#s_skin_layer").on("mouseleave", function(e) {
  260. endDrag(e)
  261. });
  262. $("#s_fm_ajust_btn").on("click", function(e) {
  263. e.stopPropagation()
  264. });
  265. $("#s_fm_ajust_bar").on("click", function(e) {
  266. currentMousePos.x = $("#s_fm_ajust_bar").offset().left + parseInt($("#s_fm_ajust_btn").css("left").replace(/px$/g, ""));
  267. doNewPos(e.clientX, true)
  268. });
  269. document.getElementById("form").style.opacity = fmOpacity + "%";
  270. fmOpacityFlag = false;
  271. let unskin = document.getElementsByClassName("s-skin-set skin-has-bg");
  272. let unskinFun = function(){
  273. document.getElementById("s_lg_img_new").src = "//www.baidu.com/img/bd_logo1.png?qua=high";
  274. document.getElementById("form").style.opacity = 1;
  275. document.getElementById("s_skin_fm_opacity_set").remove();
  276. document.getElementById("s_skin_layer_cell").style.width = "911px";
  277. unskin[0].removeEventListener("click",unskinFun);
  278. fmOpacityFlag = true;
  279. };
  280. unskin[0].addEventListener('click',unskinFun);
  281. },500);
  282. }
  283. }
  284.  
  285. let skinDiy = function(){
  286. if(document.getElementsByClassName("s-skin-container s-isindex-wrap")[0].style.backgroundColor !="" && document.getElementsByClassName("s-skin-container s-isindex-wrap")[0].style.backgroundColor != "rgba(0, 0, 0, 0)") {
  287. changeSkin();
  288. };
  289. setTimeout(function (){
  290. Array.prototype.forEach.call(document.getElementsByClassName("skin-img-item"), function (element) {
  291. element.addEventListener('click',changeSkin);
  292. });
  293. },500);
  294. }
  295. document.getElementsByClassName("s-skin")[0].addEventListener('mouseup',skinDiy);
  296.  
  297. let len = document.getElementsByClassName("mnav").length;
  298. for(let i = 0; i < len; i++){
  299. let mnav = document.getElementsByClassName("mnav")[0];
  300. if (mnav != null) {
  301. mnav.parentNode.removeChild(mnav);
  302. }
  303. }
  304.  
  305. document.getElementById("s_wrap").style.marginTop="73px";
  306.  
  307. document.getElementsByClassName("s-block-container")[0].style.paddingTop = "4px";
  308. // document.getElementsByClassName("s-menu-container")[0].remove();
  309. document.getElementById("s_menu_gurd").remove();
  310.  
  311. document.getElementsByClassName("mine-title")[0].innerHTML = "";
  312. GM_xmlhttpRequest({
  313. method: 'GET',
  314. url: 'http://open.iciba.com/dsapi/',
  315. responseType: "json",
  316. onload: response => {
  317. document.getElementsByClassName("mine-title")[0].innerHTML = response.response.note;
  318. },
  319. onerror: function() {
  320. document.getElementsByClassName("mine-title")[0].innerHTML = "那些无法看破的叹息,某天会是看淡的风景,虽然那风景,永远有谁缺席。";
  321. }
  322. });
  323.  
  324. document.getElementsByName("tj_briicon")[0].remove();
  325. document.getElementById("s_usersetting_top").style.paddingRight = "4%";
  326.  
  327. document.getElementsByClassName("s-code-blocks s-block-nav")[0].style.marginTop = "0px";
  328. document.getElementById("s_content_100").setAttribute('data-loaded', '1');
  329.  
  330. document.getElementsByClassName("rect")[0].remove();
  331. document.getElementsByClassName("s-more-bar")[0].remove();
  332.  
  333. document.getElementById("bottom_layer").remove();
  334. document.getElementById("bottom_space").remove();
  335.  
  336. document.getElementsByClassName("p-sidebar js-player-open")[0].remove();
  337. document.getElementsByClassName("qrcode-layer icon-mask-wrapper")[0].remove();
  338.  
  339. let imgs = document.getElementsByClassName("nav-icon");
  340. setImg(imgs);
  341. }
  342. } else {
  343. let len = document.getElementsByClassName("mnav").length;
  344. for(let i = 0; i < len; i++){
  345. let mnav = document.getElementsByClassName("mnav")[0];
  346. if (mnav != null) {
  347. mnav.parentNode.removeChild(mnav);
  348. }
  349. }
  350. if(document.getElementById("virus-2020") != null) {
  351. document.getElementById("virus-2020").style.display = "none";
  352. }
  353. logoHref();
  354. // let s_lg_img = document.getElementById("s_lg_img");
  355. // if(s_lg_img != null && s_lg_img.style.display != "none") {
  356. // if(s_lg_img.getAttribute("src") == "//www.baidu.com/img/bd_logo1.png"){
  357. // s_lg_img.setAttribute("usemap", "");
  358. // } else {
  359. // let area = document.getElementsByName("mp")[0].getElementsByTagName("area")[0];
  360. // area.setAttribute("href", area.href.split("?")[0] + "?wd=" + getUrlParam(area.href, "wd"));
  361. // }
  362. // }
  363. let tj_briicon = document.getElementsByName("tj_briicon");
  364. if(tj_briicon != null && tj_briicon.length != 0) {
  365. tj_briicon[0].outerHTML='<a></a>';
  366. }
  367. if(document.getElementById("qrcode") != null) {
  368. document.getElementById("qrcode").style.display = "none";
  369. }
  370. if(document.getElementById("ftConw") != null) {
  371. document.getElementById("ftConw").style.display = "none";
  372. }
  373. if(document.getElementById("bottom_layer") != null) {
  374. document.getElementById("bottom_layer").style.display = "none";
  375. }
  376. }
  377.  
  378. function setImg(imgs) {
  379. for(let i = 0; i < imgs.length; i++) {
  380. if("https://dss0.bdstatic.com/k4oZeXSm1A5BphGlnYG/icon/6000.png?3" != imgs[i].src) {
  381. continue;
  382. }
  383. let url = imgs[i].parentNode.href ? imgs[i].parentNode.href : imgs[i].parentNode.parentNode.href;
  384. // if("" == url) {
  385. // continue;
  386. // }
  387. let domain = url.split('/');
  388. let src = "";
  389. for(let j = 0; j < domain.length && j < 3; j++) {
  390. src += domain[j];
  391. if(domain[j].indexOf("http") > -1) {
  392. src += "//";
  393. }
  394. }
  395. src += "/favicon.ico";
  396.  
  397. if (!GM_getValue(src)) {
  398. GM_xmlhttpRequest({
  399. method: "GET",
  400. url: src,
  401. responseType: "blob",
  402. context: i + "|" + src,
  403. onload: function (res) {
  404. let context = res.context.split("|")
  405. let index = context[0];
  406. let src = context[1];
  407. if (res.readyState == 4 && res.status == 200 || res.status == 304) {
  408. let reader = new FileReader();
  409. reader.readAsDataURL(res.response);
  410. reader.onload = function () {
  411. let img = new Image();
  412. img.onload = function() {
  413. // localStorage[src] = reader.result;
  414. GM_setValue(src, reader.result);
  415. imgs[index].src = reader.result;
  416. };
  417. img.onerror = function () {
  418. setDefaultImg(imgs[index], src);
  419. };
  420. img.src = res.finalUrl;
  421. }
  422. } else {
  423. setDefaultImg(imgs[index], src);
  424. }
  425. },
  426. onerror: function(res) {
  427. let context = res.context.split("|");
  428. let index = context[0];
  429. let src = context[1];
  430. setDefaultImg(imgs[index], src);
  431. },
  432. onabort: function(res) {
  433. let context = res.context.split("|")
  434. let index = context[0];
  435. let src = context[1];
  436. setDefaultImg(imgs[index], src);
  437. }
  438. });
  439. } else {
  440. imgs[i].src = GM_getValue(src);
  441. }
  442. // imgs[i].outerHTML = '<img src="'+ src +'" class="nav-icon" width="16" height="16" onerror="https://dss0.bdstatic.com/k4oZeXSm1A5BphGlnYG/icon/6000.png?3">';
  443. }
  444. }
  445.  
  446. function setDefaultImg(imgTag, key) {
  447. var url = "https://dss0.bdstatic.com/k4oZeXSm1A5BphGlnYG/icon/6000.png?3";
  448. GM_xmlhttpRequest({
  449. method: "GET",
  450. url: url,
  451. responseType: "blob",
  452. onload: function (res) {
  453. if (res.readyState == 4 && res.status == 200 || res.status == 304) {
  454. let reader = new FileReader();
  455. reader.readAsDataURL(res.response);
  456. reader.onload = function () {
  457. let img = new Image();
  458. img.onload = function() {
  459. GM_setValue(key, reader.result);
  460. imgTag.src = reader.result;
  461. };
  462. img.onerror = function () {
  463. imgTag.src = url;
  464. };
  465. img.src = res.finalUrl;
  466. }
  467. }
  468. }
  469. });
  470. }
  471.  
  472. function getUrlParam(url, name) {
  473. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  474. var r = url.split("?")[1].match(reg);
  475. if (r != null) {return decodeURIComponent(r[2]);}
  476. return null;
  477. }
  478.  
  479. function logoHref(logoSrc) {
  480. let mp = $("map[name='mp']").first().children(":first");
  481. if(mp.attr("href").indexOf("%E4%BB%8A%E6%97%A5%E6%96%B0%E9%B2%9C%E4%BA%8B&tn") > -1) {
  482. mp.removeAttr("href");
  483. $("#s_kw_wrap").before(`<span class="btn_wr s_btn_wr"><img id="s_lg_img_new" src="` + logoSrc + `" onerror="this.src='https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white-c4d7df0a00.png';this.onerror=null;" usemap="#mp" title="" cursor="default" id="" style="margin-left: -100px;bottom:-17px;left:0px;" width="200" height="100"></span>`);
  484. } else {
  485. mp.attr("href", "//www.baidu.com/s?wd=" + getUrlParam(mp.attr("href"), "wd"));
  486. $("#s_kw_wrap").before(`<span class="btn_wr s_btn_wr" style="margin-right:10px"><img id="s_lg_img_new" src="` + logoSrc + `" onerror="this.src='https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white-c4d7df0a00.png';this.onerror=null;" usemap="#mp" title="" cursor="default" id="" style="bottom:-30px;left:43px;" width="200" height="100"></span>`);
  487. }
  488. }
  489.  
  490. })();
  491.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址