在 LeetCode.com 上添加一个跳转到 LeetCode.cn 的超链接按钮
Verzia zo dňa
// ==UserScript==
// @name LeetCode 跳转到 LeetCode.cn
// @namespace http://tampermonkey.net/
// @version 0.1
// @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 = 'relative flex overflow-hidden rounded bg-fill-tertiary dark:bg-fill-tertiary ml-[6px]';
link.style.paddingLeft = '8px'
link.style.paddingRight = '8px'
link.style.textAlign = 'center';
// 设置超链接的 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毫秒尝试一次添加按钮
})();