🏠

LeetCode 跳转到 LeetCode.cn

在 LeetCode.com 上添加一个跳转到 LeetCode.cn 的超链接按钮


Install this script?
Ask a question, post a review, or report the script.
// ==UserScript==
// @name         LeetCode 跳转到 LeetCode.cn
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  在 LeetCode.com 上添加一个跳转到 LeetCode.cn 的超链接按钮
// @author       Moranjianghe
// @match        https://leetcode.com/*
// @license      MIT
// @grant        none
// ==/UserScript==
(function() {
'use strict';
// 创建一个新的<a>元素作为按钮
var link = document.createElement('a');
var buttonText = document.createTextNode('跳转到 LeetCode.cn');
link.appendChild(buttonText);
link.className = 'ml-2 group/nav-back cursor-pointer gap-2 hover:text-lc-icon-primary dark:hover:text-dark-lc-icon-primary flex items-center h-[32px] transition-none hover:bg-fill-quaternary dark:hover:bg-fill-quaternary text-gray-60 dark:text-gray-60 px-2';
// 设置超链接的 href 属性
function updateLink() {
var path = window.location.pathname;
var newUrl = 'https://leetcode.cn' + path;
link.setAttribute('href', newUrl);
}
// 使用 MutationObserver 监听 URL 变化
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
updateLink(); // 当 URL 变化时更新超链接
}
});
});
var config = { childList: true, subtree: true };
observer.observe(document.body, config); // 开始监听
// 尝试添加按钮到目标<div>
function tryAppendButton() {
var targetDiv = document.getElementById('ide-top-btns');
if (targetDiv) {
targetDiv.appendChild(link);
clearInterval(appendButtonInterval); // 如果找到目标元素,停止尝试
}
}
var appendButtonInterval = setInterval(tryAppendButton, 500); // 每500毫秒尝试一次添加按钮
})();