// ==UserScript==
// @name Mobile search engineer switcher
// @name:zh-CN 移动端搜索引擎切换
// @namespace http://tampermonkey.net/
// @version 2023.10.28
// @description mobile search engineer switcher
// @description:zh-CN 移动端搜索引擎切换,必应,谷歌,百度
// @author Andy Yuen
// @include https://*.bing.*/search*
// @include https://*.google.*/search*
// @include https://*.baidu.*/*wd*
// @include https://*.baidu.*/*word*
// @icon https://www.google.com/s2/favicons?sz=64&domain=bing.com
// @license MIT
// @grant none
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
console.log('mobile search engineer switcher')
if (!/Mobi|Android|iPhone/i.test(navigator.userAgent)) return;
// Disable the scroll to top functionality
if (location.host.includes('bing.com')) {
window.addEventListener('focus', function () {
window.scrollTo = function (x, y) {
if (y !== 0) {
window.scrollTo.originalFunc(x, y);
}
};
window.scrollTo.originalFunc = window.scrollTo;
});
}
// search engineer
let selector, mapCallback;
if (location.host.includes('bing.com')) {
selector = '[role="navigation"] ul';
mapCallback = ([name, nameCn, url]) => {
let element = document.createElement('li');
element.className = 'injection-mses';
element.innerHTML = `${nameCn}`;
element.onclick = () => {
location.href = 'https://' + url + new URLSearchParams(location.search).get('q');
};
return element;
};
} else if (location.host.includes('google.com')) {
selector = '#hdtb-msb';
mapCallback = ([name, nameCn, url]) => {
let element = document.createElement('li');
element.className = 'injection-mses hdtb-mitem';
element.innerHTML = `${nameCn}`;
element.onclick = () => {
location.href = 'https://' + url + new URLSearchParams(location.search).get('q');
};
return element;
};
} else if (location.host.includes('baidu.com')) {
selector = '.se-tab-lists';
mapCallback = ([name, nameCn, url]) => {
let element = document.createElement('a');
element.className = 'injection-mses se-tabitem';
element.innerHTML = `${nameCn}`;
element.onclick = () => {
const params = new URLSearchParams(location.search);
location.href = 'https://' + url + (params.get('wd') || params.get('word'));
};
return element;
};
}
function inject() {
if (document.querySelector(selector) && !document.querySelector('.injection-mses')) {
document.querySelector(selector).prepend(...[
['google', '谷歌', 'google.com/search?q='],
['bing', '必应', 'bing.com/search?q='],
['baidu', '百度', 'baidu.com/s?wd=']
].filter(([name]) => !location.host.includes(name)).map(mapCallback));
} else {
setTimeout(inject, 10);
}
}
inject();
})();