LeetCode 跳转到 LeetCode.cn

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

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==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毫秒尝试一次添加按钮
})();