Created
December 25, 2023 05:46
-
-
Save NeraSnow/79165e9fbc70b916b76356a12c14bb2c to your computer and use it in GitHub Desktop.
LeetCode Get Question Topics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name New Userscript | |
// @namespace http://tampermonkey.net/ | |
// @version 2023-12-25 | |
// @description try to take over the world! | |
// @author You | |
// @match https://leetcode.com/problems/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=leetcode.com | |
// @grant none | |
// ==/UserScript== | |
// Function to get the text content of <a> elements inside the specified <div> | |
function getTextContent() { | |
// Select the div element | |
const divElement = document.querySelector('.mt-2.flex.gap-1.pl-7'); | |
// Select all the <a> elements inside the div | |
const aElements = divElement.querySelectorAll('a'); | |
// Create an array to store the text content of each <a> element | |
const textArray = []; | |
// Iterate over each <a> element and store its text content in the array | |
aElements.forEach((a) => { | |
textArray.push(`"${a.textContent}"`); | |
}); | |
// Log the array to the console (you can do other things with the array here) | |
copyToClipboard(`"topic": [${textArray}]`,) | |
} | |
function copyToClipboard(text) { | |
navigator.clipboard.writeText(text) | |
.then(() => { | |
console.log('Text successfully copied to clipboard'); | |
}) | |
.catch((err) => { | |
console.error('Unable to copy text to clipboard', err); | |
}); | |
} | |
// Create a button element | |
const buttonElement = document.createElement('button'); | |
buttonElement.textContent = 'Get Topics'; | |
// Add an onClick event listener to the button, linking it to the getTextContent function | |
buttonElement.addEventListener('click', getTextContent); | |
// Add styles to make the button a floating element | |
buttonElement.style.position = 'fixed'; | |
buttonElement.style.top = '13px'; // Adjust the top position as needed | |
buttonElement.style.right = '450px'; // Adjust the right position as needed | |
buttonElement.style.zIndex = '9999'; // Ensure it's on top of other elements | |
buttonElement.style.backgroundColor = 'rgba(255, 255, 255, 0.5)'; // 50% transparent white background | |
// Add an onClick event listener to the button, linking it to the getTextContent function | |
buttonElement.addEventListener('click', getTextContent); | |
function doStuff() { | |
// Select the div with the specified class | |
// const targetDivElement = document.querySelector('.relative.ml-4.flex.items-center.gap-2'); | |
// console.log(targetDivElement); | |
// Prepend the button to the selected div | |
document.body.prepend(buttonElement); | |
} | |
doStuff(); | |
/* | |
if (document.readyState !== 'loading') { | |
console.log('document is already ready, just execute code here'); | |
setTimeout(doStuff(), 1000); | |
} else { | |
console.log("What?"); | |
} | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment