// ==UserScript== // @name 力扣中文站重定向到 LeetCode 国际站 // @namespace https://greasyfork.org/zh-CN/users/459661-cycychenyi // @version 0.1 // @description 如果当前链接在 LeetCode 国际站可访问,则重定向。如果当前链接在 LeetCode 国际站不可访问(比如力扣中文站独家题库),则不做处理。 // @author cycychenyi // @match https://leetcode.cn/* // @match https://leetcode-cn.com/* // @grant GM_xmlhttpRequest // @connect leetcode.com // @downloadURL none // ==/UserScript== async function redirectIfPossible() { const redirectUrl = getRedirectUrl('leetcode.com'); if (await isValid(redirectUrl)) { redirect(redirectUrl); } } function getRedirectUrl(redirectHostname) { const url = new URL(location.href); url.hostname = redirectHostname; return url; } async function isValid(url) { const response = await visit(url); return response.status == 200; } function visit(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'GET', url: url, onload: response => resolve(response) }); }); } function redirect(url) { location.assign(url); } redirectIfPossible();