Greasy Fork is available in English.

Bing 中国版重定向

将中国版 Bing 重定向到国际版

// ==UserScript==
// @name         Bing 中国版重定向
// @namespace    http://tampermonkey.net/
// @version      0.9
// @description  将中国版 Bing 重定向到国际版
// @author       TGSAN
// @match        https://www.bing.com/*
// @match        https://cn.bing.com/*
// @icon         https://www.google.cn/s2/favicons?sz=64&domain=bing.com
// @run-at       document-start
// ==/UserScript==

let area_code = "us";
let lang_code = "en-US";
let force_use_lang_code = false;

(function() {
    'use strict';

    function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) { return pair[1]; }
        }
        return (false);
    }

    function getAndDelVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        var new_vars = '';
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] != variable && pair[0] && pair[1]) {
                new_vars += pair[0] + "=" + pair[1];
                if (i < vars.length - 1) {
                    new_vars += "&";
                }
            }
        }
        return new_vars;
    }

    function deleteAllCookies() {
        var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
        }
    }

    let mkt = getQueryVariable("mkt");
    let cc = getQueryVariable("cc");
    if ((force_use_lang_code == true && (cc == false || mkt == false)) || mkt == "zh-CN" || mkt == "cn") {
        deleteAllCookies();
        window.localStorage.clear();
        window.sessionStorage.clear();
        let args = getAndDelVariable("mkt") + "&setmkt=" + lang_code + "&mkt=" + lang_code + "&cc=" + area_code + "&toWww=1";
        if (args.startsWith("&")) {
            args = args.substring(1);
        }
        let new_url;
        if (args) {
            new_url = window.location.pathname + "?" + args;
        } else {
            new_url = window.location.pathname;
        }
        let setting = "https://www.bing.com/account/action?cc=" + area_code + "&settingpage=1&ntb=1&ru=" + encodeURIComponent(new_url) + "&setmkt=" + lang_code + "&mkt=" + lang_code + "&toWww=1";
        window.location = setting;
    }
})();