您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple Note taker allows you to easily take notes while browsing the web. Simply select any text on a webpage.
- // ==UserScript==
- // @name Simple Note taker
- // @description Simple Note taker allows you to easily take notes while browsing the web. Simply select any text on a webpage.
- // @author momoehab
- // @match *://*/*
- // @license MIT
- // @version 0.0.1.20240609220313
- // @namespace https://greasyfork.org/users/1315328
- // ==/UserScript==
- function getSelectedText() {
- var text = "";
- if (typeof window.getSelection != "undefined") {
- text = window.getSelection().toString().trim();
- } else if (typeof document.selection != "undefined" && document.selection.type == "Text") {
- text = document.selection.createRange().text.trim();
- }
- return text.toUpperCase(); // Convert selected text to uppercase
- }
- function handleSelection() {
- var selectedText = getSelectedText();
- if (selectedText) {
- const storedText = localStorage.getItem(selectedText);
- if (storedText) {
- const shouldDelete = confirm("Info: " + storedText + "\nWant to delete?");
- if (shouldDelete) {
- var searchTerm = storedText; // Get the text of the item to delete
- removeSpanAndUnderline(searchTerm);
- localStorage.removeItem(selectedText);
- }
- } else {
- const newText = prompt("You selected: " + selectedText + "\nEnter details:");
- if (newText !== null) {
- localStorage.setItem(selectedText, newText);
- }
- }
- }
- }
- document.addEventListener("mouseup", handleSelection);
- document.addEventListener("keyup", function (event) {
- if (event.key === "Enter") {
- handleSelection();
- }
- });
- // Underline previously selected words with dotted line and show data as alt text on mouseover
- document.addEventListener("DOMContentLoaded", function () {
- var storedWords = Object.keys(localStorage);
- storedWords.forEach(function (word) {
- var bodyHTML = document.body.innerHTML;
- var re = new RegExp("\\b(" + word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ")\\b", "gi");
- var data = localStorage.getItem(word);
- bodyHTML = bodyHTML.replace(re, function (match) {
- return '<span style="text-decoration: underline dotted" data-text="' + data + '" onmouseover="this.title=this.getAttribute(\'data-text\')">' + match + '</span>';
- });
- document.body.innerHTML = bodyHTML;
- });
- });
- function removeSpanAndUnderline(word) {
- // Get all spans in the document
- var spans = document.getElementsByTagName('span');
- // Iterate through all spans
- for (var i = 0; i < spans.length; i++) {
- var span = spans[i];
- // Check if the span contains the specific word and is underlined
- if (span.textContent.includes(word) && span.style.textDecoration === 'underline') {
- // Remove the underline
- span.style.textDecoration = 'none';
- // Replace the span with its content
- var textNode = document.createTextNode(span.textContent);
- span.parentNode.replaceChild(textNode, span);
- }
- }
- }