// ==UserScript==
// @name Google & baidu Switcher (ALL in One)
// @namespace https://openuserjs.org/scripts/t3xtf0rm4tgmail.com/Google_baidu_Switcher_(ALL_in_One)
// @author F9y4ng
// @version 1.5.0.1
// @description 分别在百度和google的搜索结果页面增加搜索跳转按钮,使用到外链微软CDN的jquery-1.7.2.min.js,不懂跳墙使用GOOGLE的同学请自动忽略。自动判断百度和google对JQUERY的载入,并动态载入Jquery.js。
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHpSURBVFhH7Ze7SsRAFIYXLSwUaxXEQlEUfQIrWxUsfAk7G2+VYGHnO9j7AjYqaClYWCtWFlp5QfDS6P8lORCGTHZGswnC/vDBzDlz/kkys5lsq6v/qgfx7UCsFo0Id3KDXMe1IpjsOOmlok2MXMd1IJhsP+mlok2MXCUaE1diV0wSkObEhWAiWBUm2hZnDGMRtXjghWewjoQZwrX4yNo3Yl0MCBNtYuQY8y6oyXvgGaQFQcGLOBRPWf9LbIge4RM5xjCWGmrxwIs+3qXqFXblGKE+weaaT3phYiw11CK88MSbObxaE3a3owQ8Whan4i2D9pLwCS97Kszh1ZS4EwxkPSeEqz1BvghyrvCwvYE3c5RqSFwKCh6F/QoQd06cDcljHc7YFJ+CXP5JUIsHcTzxDlK/uBcUzhDIdCaI2f7Ia1uQY4yJWmJ44RmlZ0HxYNJL9SqIcdeuiJFjjIlaYnhFK/YC7Iyo5ALaLQFr7mpHkMsvwbQgFrUEIZuQDcdFcNfA5EWbcFxEbcLGf4ahLyLu8kSw3kB7UfgU/CJq/FWMyg4j1r3dYbQl7G6jDyNT0XHMEUv7VviOY3KM+dNxjHwfJOfCDH0fJIyZFejXHyRlquWTrExsLiZr7KPUXrlFkKtFjf4x6apCtVo/mQri6IC8s1UAAAAASUVORK5CYII=
// @compatible Chrome + tampermonkey
// @compatible Firefox + tampermonkey
// @compatible Microsoft Edge + tampermonkey
// @compatible opera + tampermonkey
// @compatible safari //暂未测试
// @include /^https?\:\/\/[a-zA-Z0-9]*.google.[^\/]+/
// @include http://www.baidu.com/*
// @include https://www.baidu.com/*
// @license MPL-2.0
// @copyright 2015+, f9y4ng
// @grant none
// @downloadURL none
// ==/UserScript==
if ("undefined" == typeof (jQuery)) {
loadJs("for_google", "https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js", callbackFunction);
}
else {
$(document).ready(function () {
function baiduswitchgoogle() {
$('.s_btn_wr').after('
\
');
$('#ggyx').on({
click: function () {
var BSurl = GetUrlParam("tn"); //百度几个频道的命名和参数可以人道毁灭了,图片搜索没心情兼容。
switch (BSurl) {
case "news":
BSurl = "tbm=nws&q=";
break;
case "vsearch":
BSurl = "tbm=vid&q=";
break;
default:
BSurl = "q=";
}
window.open("https://www.google.com/search?newwindow=1&hl=zh-CN&source=hp&" + BSurl + encodeURIComponent($('#kw').val()));
return false;
}
});
}
if (GetUrlParam("wd").length > 0 || window.location.href.lastIndexOf("/s?") > 0) {
baiduswitchgoogle();
}
//2018/11/07 F9y4ng 检测从baidu首页进入的搜索
if (/^http(s)?:\/\/(www\.)?baidu\.com\/$/ig.test(window.location.href)) {
$("#kw").on("blur", function () {
if ($('#kw').val().length > 0) {
setTimeout(function () {
if ($('#ggyx').length < 1 && GetUrlParam("wd").length > 0) {
baiduswitchgoogle();
}
}, 600);
}
});
}
});
}
function callbackFunction() {
$(document).ready(function () {
function googleswitchbaidu() {
$('#tsf').prepend('');
$('#sfdiv_bd').off("click").on({
click: function () {
var kw = $('input[name="q"]').val();
//获取属性标签容错
if ("undefined" == typeof (kw)) {
kw = GetUrlParam("q");
}
var GSurl = GetUrlParam("tbm");
switch (GSurl) {
case "isch":
GSurl = "https://image.baidu.com/search/index?tn=baiduimage&ie=utf-8&word=";
break;
case "vid":
GSurl = "https://www.baidu.com/sf/vsearch?pd=video&tn=vsearch&ie=utf-8&wd=";
break;
case "nws":
GSurl = "https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=";
break;
default:
GSurl = "https://www.baidu.com/s?ie=utf-8&rqlang=cn&wd=";
}
window.open(GSurl + encodeURIComponent(kw));
return false;
}
});
}
if (window.location.hash.lastIndexOf("q=") > 0 || window.location.search.lastIndexOf("q=") > 0) {
googleswitchbaidu();
}
//2019/05/21 F9y4ng 修正GOOGLE首页自动提交搜索优先级
if (/^http(s)?:\/\/(www\.)?google\.\w+(\.\w+)?\/$/ig.test(window.location.href) || GetUrlParam("q") === null || GetUrlParam("q") === "") {
var gfm = $('input[name="q"]');
if ("undefined" == typeof (gfm)) {
gfm = $("input[role='combobox']");
}
gfm.off('click').on({
blur: function () {
if (gfm.val().length > 0) {
setTimeout(function () {
$("form").submit();
}, 200);
}
}
});
}
var ua = myBrowser();
if (GetUrlParam("tbm") !== "" && GetUrlParam("tbm") !== null) {
$('#bdyxwz').css('margin-left', '2px');
}
if (ua == "FF" || ua == "Edge") {
$('#bdyxwz').css('margin-top', '10px');
$('#bdyxss').css('margin', '15px 2px 0 4px');
}
else {
$('#bdyxwz').css('margin-top', '0px');
$('#bdyxss').css('margin', '4px 2px 0 4px');
}
var elm = $('#bdyx');
var startPos = $(elm).offset().top;
$.event.add(window, "scroll", function () {
var p = $(window).scrollTop();
$(elm).css('height', ((p) > startPos - 5) ? '37px' : '49px');
if (ua == "FF" || ua == "Edge") {
$('#bdyxwz').css('margin-top', ((p) > startPos) ? '5px' : '10px');
$('#bdyxss').css('margin', ((p) > startPos) ? '10px 2px 0 4px' : '15px 2px 0 4px');
}
if (GetUrlParam("tbm") !== "" && GetUrlParam("tbm") !== null) {
$('#bdyx').css('margin-top', ((p) > startPos) ? '8px' : '-2px');
}
});
});
}
function loadJs(sid, jsurl, callback) {
var nodeHead = document.getElementsByTagName('head')[0];
var nodeScript = null;
if (document.getElementById(sid) === null) {
nodeScript = document.createElement('script');
nodeScript.setAttribute('type', 'text/javascript');
nodeScript.setAttribute('src', jsurl);
nodeScript.setAttribute('id', sid);
if (callback !== null) {
nodeScript.onload = nodeScript.onreadystatechange = function () {
if (nodeScript.ready) {
return false;
}
if (!nodeScript.readyState || nodeScript.readyState == "loaded" || nodeScript.readyState == 'complete') {
nodeScript.ready = true;
callback();
}
};
}
nodeHead.appendChild(nodeScript);
}
else {
if (callback !== null) {
callback();
}
}
}
function GetUrlParam(paraName) {
var url = document.location.toString();
var arrObj = url.split("?");
if (arrObj.length > 1) {
var arrPara = arrObj[1].split("&");
var arr;
for (var i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split("=");
if (arr !== null && arr[0] == paraName) {
return arr[1];
}
}
return "";
}
else {
return "";
}
}
function myBrowser() {
var userAgent = navigator.userAgent;
if (userAgent.indexOf("Firefox") > -1) {
return "FF";
}
if (userAgent.indexOf("Edge") > -1) {
return "Edge";
}
}