Advertisement
lawre

Untitled

Nov 30th, 2024 (edited)
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Disabilita link e Copia Contenuto
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.9
  5. // @description  Copia il titolo e l'autore del libro
  6. // @match        https://www.ibs.it/*
  7. // @grant        GM_addStyle
  8. // ==/UserScript==
  9.  
  10. (function () {
  11.     'use strict';
  12.  
  13.     // Stile per abilitare la selezione del testo senza bloccare lo slider
  14.     GM_addStyle(`
  15.         * {
  16.             user-select: text !important;
  17.         }
  18.         .cc-title, .cc-author-name {
  19.             pointer-events: none !important; /* Disabilita i link di titolo e autore */
  20.             cursor: default !important; /* Cambia il cursore a default per indicare che non sono cliccabili */
  21.         }
  22.         .cc-slider-arrow {
  23.             pointer-events: auto !important; /* Mantiene cliccabili le frecce dello slider */
  24.         }
  25.     `);
  26.  
  27.     function setupCopyFunctionality() {
  28.         document.querySelectorAll('.cc-title').forEach(link => {
  29.             // Estrae titolo e autore
  30.             const title = link.textContent.trim();
  31.             const authorElem = link.closest('.cc-content-text').querySelector('.cc-author-name');
  32.             const author = authorElem ? authorElem.textContent.replace('di ', '').trim() : 'Autore non trovato';
  33.  
  34.             // Crea un nuovo elemento span che sostituisce il link
  35.             const span = document.createElement('span');
  36.             span.textContent = title;
  37.             span.style.cursor = 'text'; // Cursor remains text for the span
  38.             span.onclick = () => {
  39.                 // Utilizza il template literal per concatenare il titolo e autore
  40.                 navigator.clipboard.writeText(`${title} - ${author}`)
  41.                     .catch(console.error);  // Non mostra alcun popup
  42.             };
  43.  
  44.             // Sostituzione del link con lo span
  45.             link.replaceWith(span);
  46.         });
  47.     }
  48.  
  49.     // Funzione che osserva cambiamenti nel DOM e applica le modifiche
  50.     const observer = new MutationObserver(() => {
  51.         setupCopyFunctionality(); // Applica le modifiche solo ai titoli
  52.     });
  53.  
  54.     observer.observe(document.body, { childList: true, subtree: true });
  55.  
  56.     // Esegui inizialmente la configurazione
  57.     setupCopyFunctionality();
  58. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement