您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
it's a script to blocked The CSDN website like https://www.csdn.net/ in most broswers because the website is so disgusting
// ==UserScript== // @name FKCSDN // @namespace http://tampermonkey.net/ // @version 2.2 // @description it's a script to blocked The CSDN website like https://www.csdn.net/ in most broswers because the website is so disgusting // @description 在大多数都主流浏览器中屏蔽了 CSDN 站点,所以起名 FKCSDN // @include *://www.baidu.com/* // @include *://www.dogedoge.com/* // @include *://www.so.com/* // @include *://www.sogou.com/* // @include *://www.google.com/* // @include *://duckduckgo.com/* // @include *.bing.com/* // @grant none // ==/UserScript== (function() { 'use strict'; var move = false var insertHtml = ` <div style="" class="__fixed-btn"> <div class="fk-box"> <div class="fk-csdn">FK CSDN</div> <label class="fk-item"> <input type="checkbox" name="fk-csdn" checked="true"> <div class="slider round"></div> </label> </div> </div>` var insertStyle = `<style type="text/css"> .__fixed-btn { -webkit-user-select: none; position: fixed; top: 150px; left: 0; border-radius: 50px; width: 100px; height: 100px; background-color: #f2f8ff; z-index: 10000; } .slider.round { border-radius: 34px; } .slider { position: absolute; cursor: pointer; width: 40px; height: 20px; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; -webkit-transition: .4s; transition: .4s; } .slider.round:before { border-radius: 50%; } .slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 2px; bottom: 2px; background-color: white; -webkit-transition: .4s; transition: .4s; } .fk-item input { display: none; } .fk-item { position: absolute; right: 0; top: 10px; display: inline-block; vertical-align: middle; width: 40px; height: 20px; top: 6px; } input:checked+.slider { background-color: #2196F3; } input:checked+.slider:before { -webkit-transform: translateX(20px); -ms-transform: translateX(20px); transform: translateX(20px); } .fk-csdn { color: #000; font-weight: bold; font-size: 12px; vertical-align: middle; } .fk-box { position: relative; height: 30px; line-height: 30px; } .fk-box:first-child { margin-top: 20px; } </style> ` document.querySelector('body').insertAdjacentHTML('afterbegin', insertHtml); document.querySelector('head').insertAdjacentHTML('afterbegin', insertStyle); var searchEngineCode = '00'; var fixedBtn = document.querySelector('.__fixed-btn'); var inputBox = document.querySelector('input[type=checkbox]'); var searchBtn = document; var searchInput = document; // 1 google 2 duck 3 baidu 4 sogo 5 360 6 doge 7 bing switch (window.location.host) { case 'www.google.com': searchEngineCode = '01'; searchBtn = document.querySelector('.Tg7LZd'); searchInput = document.querySelector('.gLFyf'); break; case 'duckduckgo.com': searchEngineCode = '02'; searchBtn = document.querySelector('#search_button'); searchInput = document.querySelector('#search_form_input'); break; case 'www.baidu.com': searchEngineCode = '03'; searchBtn = document.querySelector('#su'); searchInput = document.querySelector('#kw'); document.querySelector('#wrapper').insertAdjacentHTML('afterbegin', insertStyle); break; case 'www.sogou.com': searchEngineCode = '04'; searchBtn = document.querySelector('#searchBtn'); searchInput = document.querySelector('#upquery'); break; case 'www.so.com': searchEngineCode = '05'; searchBtn = document.querySelector('#su'); searchInput = document.querySelector('#keyword'); break; case 'www.dogedoge.com': searchEngineCode = '06'; searchBtn = document.querySelector('#search_button'); searchInput = document.querySelector('#search_form_input'); break; case 'cn.bing.com': searchEngineCode = '07'; searchBtn = document.querySelector('#sb_form_go'); searchInput = document.querySelector('#sb_form_q'); break; case 'www.bing.com': searchEngineCode = '07'; searchBtn = document.querySelector('#sb_form_go'); searchInput = document.querySelector('#sb_form_q'); break; default: searchEngineCode = '00'; console.log('不支持此搜索引擎') break; } var isChecked = window.localStorage.getItem('FKCSDNCheck') == 'false' ? false : true; inputBox.checked = isChecked; var mouseDownClientX, mouseDownClientY, mouseDownOffsetLeft, mouseDownOffsetRight,mouseChangeClientX,mouseChangeClientY; var windowWidth = window.innerWidth, windowHeight = window.innerHeight fixedBtn.addEventListener("mousedown", function(e) { fixedBtn.style.transition = ''; move = true; mouseDownClientX = e.clientX; mouseDownClientY = e.clientY; mouseDownOffsetLeft = fixedBtn.offsetLeft; mouseDownOffsetRight = fixedBtn.offsetTop; }); document.addEventListener("mousemove", function(e) { if (move == false) { return; } var x = e.clientX; var y = e.clientY; fixedBtn.style.left = x - (mouseDownClientX - mouseDownOffsetLeft) + "px"; fixedBtn.style.top = y - (mouseDownClientY - mouseDownOffsetRight) + "px"; }); fixedBtn.addEventListener("mouseup", function(e) { move = false; mouseChangeClientX = e.clientX; mouseChangeClientY = e.clientY; fixedBtn.style.transition = 'all .3s'; if(mouseChangeClientX < windowWidth/2){ fixedBtn.style.left = 0; }else { fixedBtn.style.left = windowWidth - fixedBtn.clientWidth + 'px'; } if(fixedBtn.offsetTop < 0){ fixedBtn.style.top = 0; }else if(fixedBtn.offsetTop + fixedBtn.clientHeight > windowHeight) { fixedBtn.style.top = windowHeight- fixedBtn.clientHeight + 'px'; } }); inputBox.addEventListener('change', function() { var name = this.getAttribute('name'); var value = this.getAttribute('checked'); var ele = this; switch (name) { case 'fk-csdn': FKCSDN(name, value, ele); break case '': break; default: break; } }) searchBtn && searchBtn.addEventListener('click', function(e) { if (searchEngineCode == '00') return; var searchText = searchInput.value; var searchArr = searchText.split(' '); var hasValue = false; for (var key in searchArr) { if (searchArr[key] == '-site:csdn.net') { hasValue = true; } } if (!hasValue && isChecked) { searchInput.value = searchText + ' -site:csdn.net'; } }) function FKCSDN(name, value, ele) { if (searchEngineCode == '00') return; isChecked = ele.checked == true; window.localStorage.setItem('FKCSDNCheck', isChecked) if (!isChecked) { var searchText = searchInput.value; var searchArr = searchText.split(' '); var newArr = []; if (searchArr.includes('-site:csdn.net')) { searchArr.forEach((value, index) => { if (value !== '-site:csdn.net') { newArr.push(value); } }) searchInput.value = newArr.join(' '); } } searchBtn.click(); } })();