🏠 Home 

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