您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Block words from Google Search
- // ==UserScript==
- // @name Google Block Words
- // @version 1.1
- // @description Block words from Google Search
- // @author Drazen Bjelovuk
- // @include *://*.google.tld/*
- // @grant none
- // @noframes
- // @namespace https://greasyfork.org/users/11679
- // @contributionURL https://goo.gl/dYIygm
- // ==/UserScript==
- var bwWindow, keywords;
- var oldSubmit = document.getElementById('tsf').onsubmit;
- document.getElementById('tsf').onsubmit = function() {
- var keywords = JSON.parse(localStorage.getItem('blockedWords'));
- if (keywords) {
- var blockString = ' ';
- for (var i = 0; i < keywords.length; i++)
- blockString += '-"' + keywords[i] + '" ';
- document.getElementById('lst-ib').value += blockString;
- }
- oldSubmit();
- };
- // Create and add window
- bwWindow = document.createElement('div');
- bwWindow.id = 'bwWindow';
- bwWindow.setAttribute('style', 'display:none; position:fixed; left:50%; top:70px; width:400px; max-height:400px; overflow-y:auto; overflow-x:hidden; margin-left:-200px; text-align:center; background-color:white; z-index:99999; border:solid 1px; padding-bottom:30px');
- var innerHTML = '<h2 style="margin-bottom:25px">Blocked Words</h2>';
- keywords = JSON.parse(localStorage.getItem('blockedWords'));
- if (keywords) {
- for (var i = 0; i < keywords.length; i++)
- innerHTML += '<div style="margin-bottom:5px"><input type="text" style="width:250px; margin-right:10px" value="'+keywords[i]+'" disabled><button class="removeButton" data-index="'+i+'" style="width:65px">Remove</button></div>';
- }
- innerHTML += '<div><input id="addWord" type="text" style="width:250px; margin-right:10px"><button id="addButton" style="width:65px">Add</button></div>';
- bwWindow.innerHTML = innerHTML;
- bwWindow.onclick = function(event) { event.stopPropagation(); };
- document.body.appendChild(bwWindow);
- document.addEventListener('click', function() {
- bwWindow.style.display = 'none';
- });
- // Create and add buttons for opening window
- if (window.location.href.indexOf('search') > -1) {
- if (keywords) {
- var srchBox = document.getElementById('lst-ib');
- var blockedIndex = srchBox.value.indexOf('-"'+keywords[0]);
- if (blockedIndex > -1)
- srchBox.value = srchBox.value.slice(0, blockedIndex - 1);
- }
- var keywordBtn = document.createElement('a');
- keywordBtn.className = 'ab_button';
- keywordBtn.textContent = 'Blocked Words';
- keywordBtn.setAttribute('style', 'position:absolute; right:-140px; bottom:0; cursor:pointer; text-decoration:none; padding: 7px 17px;');
- keywordBtn.addEventListener('click', openBWWindow);
- document.getElementById('tsf').appendChild(keywordBtn);
- }
- else {
- var keywordBtn = document.createElement('input');
- keywordBtn.id = 'homeBWButton';
- keywordBtn.type = 'button';
- keywordBtn.className = 'gbqfba';
- keywordBtn.value = 'Blocked Words';
- var css = document.createElement("style");
- css.type = "text/css";
- css.innerHTML = "#homeBWButton { color:#757575 !important; height:36px; font-size:13px; padding:0 16px; border:1px solid #f2f2f2; } " +
- "#homeBWButton:hover { color:#222 !important; border:1px solid #c6c6c6 } " +
- "#homeBWButton:focus { border:1px solid #4d90fe };";
- document.head.appendChild(css);
- keywordBtn.addEventListener('click', openBWWindow);
- document.getElementsByClassName('jsb')[0].firstChild.appendChild(keywordBtn);
- }
- // Events
- bwWindow.addEventListener('click', function(event) {
- if (event.target.id === 'addButton')
- addBW(event.target);
- else if (event.target.className === 'removeButton')
- removeBW(event.target);
- });
- bwWindow.addEventListener('keyup', function(event) {
- if (event.keyCode === 13 && event.target.id === 'addWord')
- document.getElementById('addButton').click();
- });
- function addBW(addButton) {
- var addInput = document.getElementById('addWord');
- if (addInput.value) {
- keywords = JSON.parse(localStorage.getItem('blockedWords'));
- if (keywords)
- keywords.push(addInput.value);
- else
- keywords = [addInput.value];
- localStorage.setItem('blockedWords', JSON.stringify(keywords));
- var newItem = document.createElement('div');
- newItem.style.marginBottom = '5px';
- newItem.innerHTML = '<input type="text" style="width:250px; margin-right:10px" value="'+ addInput.value +'" disabled><button class="removeButton" data-index="'+ (keywords.length - 1) +'" style="width:65px">Remove</button>';
- bwWindow.insertBefore(newItem, addButton.parentNode);
- addInput.value = "";
- }
- }
- function removeBW(removeButton) {
- keywords = JSON.parse(localStorage.getItem('blockedWords'));
- var currIndex = removeButton.dataset.index;
- keywords.splice(currIndex, 1);
- var nextSibling = removeButton.parentNode.nextSibling;
- while (nextSibling) {
- nextSibling.childNodes[1].dataset.index = currIndex;
- nextSibling = nextSibling.nextSibling;
- currIndex++;
- }
- localStorage.setItem('blockedWords', JSON.stringify(keywords));
- removeButton.parentNode.remove();
- }
- function openBWWindow(event) {
- event.stopPropagation();
- bwWindow.style.display = 'block';
- }