Google disable safesearch

Set off google safesearch

  1. // ==UserScript==
  2. // @name Google disable safesearch
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1.3
  5. // @description Set off google safesearch
  6. // @author You
  7. // @include /^https\:\/\/[a-z]*\.(google)\.[a-z]*/search\?/
  8. // @icon https://www.google.com/s2/favicons?domain=google.com
  9. // @grant none
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. var count = 0;
  16. window.addEventListener("load",function(){
  17. run();
  18. });
  19.  
  20. function disableSafesearch() {
  21. var safeui = document.querySelector("g-menu-item a[aria-label][href*='setprefs?sig']");
  22. // new ui about may 2024
  23. var newsafeuiImage = document.querySelector("[data-sbu^='/setprefs']");
  24. var newsafeuiSearch = document.querySelector("div:has(>[href^='/safesearch']) div");
  25.  
  26. if(safeui != null){
  27. if(safeui.href.match(/safeui=off$/) == null){
  28. window.location = safeui.href.replace(/safeui=(on|images)$/,"safeui=off");
  29. console.log("Google disable safesearch: done!");
  30. } else {
  31. console.log("Google disable safesearch: nothing to do!");
  32. }
  33. } else if (newsafeuiImage != null){
  34. if(newsafeuiImage.querySelector("[data-key='off'][selected='true']") == null) {
  35. if(newsafeuiImage.querySelector("[data-key='off']") != null){
  36. //window.location = document.querySelector("[data-sbu^='/setprefs']").getAttribute("data-sbu") + "&safeui=off"
  37. // document.querySelector("div:has(>[href^='/safesearch']) div").querySelector("span:last-child").innerText != "Off"
  38. newsafeuiImage.querySelector("[data-key='off']").click();
  39. console.log("Google disable safesearch: done!");
  40. }
  41. } else {
  42. console.log("Google disable safesearch: nothing to do!");
  43. }
  44. } else if (newsafeuiSearch != null) { // data-setprefs-off-url
  45. if (document.querySelector("div:has(>[href^='/safesearch']) div").querySelector("span:last-child").innerText != "Off") {
  46. var xhr = new XMLHttpRequest();
  47. xhr.open("GET", "https://www.google.com/safesearch");
  48. xhr.send();
  49. xhr.responseType = "text"
  50. //xhr.responseType = "document";
  51. //xhr.overrideMimeType = "text/xml";
  52. xhr.onload = () => {
  53. if (xhr.readyState == 4 && xhr.status == 200) {
  54. xhr.open("GET", xhr.responseText.match("data-setprefs-off-url=\"([^\"]*)\"")[1].replaceAll("amp;",""));
  55. xhr.send();
  56. xhr.responseType = "html";
  57. xhr.onload = () => {
  58. if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 204)) {
  59. window.location = window.location;
  60. console.log("Google disable safesearch: done!");
  61. } else {
  62. console.log(`Google disable safesearch: Failed error ${xhr.status}`);
  63. }
  64. };
  65. } else {
  66. console.log(`Google disable safesearch: Failed error ${xhr.status}`);
  67. }
  68. };
  69. } else {
  70. console.log("Google disable safesearch: nothing to do!");
  71. }
  72. } else {
  73. safeui = document.querySelector("g-menu-item a[href*='setprefs?sig'][href$='safeui=off']");
  74. if(safeui != null) {
  75. window.location = safeui.href;
  76. console.log("Google disable safesearch: done!");
  77. } else {
  78. if(document.querySelector("g-menu-item a[href*='setprefs?sig'][href$='safeui=on']") != null){
  79. console.log("Google disable safesearch: nothing to do!");
  80. } else {
  81. console.log(document.querySelector("g-menu-item a[href*='setprefs?sig']"));
  82. console.log("Google disable safesearch: failed!");
  83. }
  84. }
  85. }
  86. }
  87.  
  88. function run(){
  89. //only few pages have safesearch settings menu
  90. if(document.URL.includes("tbm") == false || document.URL.match(/tbm=(isch|vid|nws)/) != null){
  91. if(document.querySelector("g-menu-item a[href*='setprefs?sig']") == null &&
  92. // new ui may 2024
  93. document.querySelector("[data-sbu^='/setprefs']") == null && document.querySelector("div:has(>[href^='/safesearch']) div") == null){
  94. //wait until safesearch settings menu exist
  95. window.setTimeout(function (){
  96. run();
  97. },50);
  98. count += 1;
  99. if(count > 10){
  100. console.log("Google disable safesearch: too fast!");
  101. count = 0;
  102. }
  103. } else {
  104. disableSafesearch();
  105. }
  106. } else {
  107. console.log("Google disable safesearch: no safesearch page!");
  108. }
  109. }
  110.  
  111. })();

QingJ © 2025

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