Autore Topic: [ M ] ripritstina copia codice ( si appica a questo forum)  (Letto 461 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Mil-F.

[ M ] ripritstina copia codice ( si appica a questo forum)
« il: Giugno 12, 2019, 02:07:40 pm »
 :emoticon-fumatori_45:
Come me  siete trooooppo pigri per selezionare e copiare tutto il contenuto dei tag code?
il già presente 'Codice: [Seleziona]' non funziona?, e tanto non copierebbe.
pongo rimedio  :ridere_ride:
questo script aggiunge un tasto per selezionare e copiare negli appunti il contenuto dei tag codice


 
per incollare dovete arrangiarvi non posso sapere dove volete incollare  :lol_lol:

gia che c'ero ho ingrandito un po il contenuto dei code per renerlo più leggibile se da fastidio:
 - eliminate la riga 25 "ddd.style.fontSize='larger';"
 - o commentatela, inserendo nll'inizio della riga \\
 - o se preferite inserite un nuovo valore al posto di 'larger'

Codice: [Seleziona]
// ==UserScript==
// @name seleziona codice
// @namespace Violentmonkey Scripts
// @match https://ubuntucommunityitalia.altervista.org/index.php?*
// @grant none
// ==/UserScript==
(function(){
  "use strict"
var ns = document.createElement('style')
    ns.innerHTML = '.my_mew_Div { display:block; position:relative; width:100px; height:90%; \
    border:2px outset black; box-sizing: border-box; color: green; font-size: large; text-align: center;} \
    .my_mew_Div:active { border-style:inset;}'

document.body.append(ns)
var ddd = document.querySelectorAll('.bbc_code'),
    a = (0);
if (ddd){
  for (i=0; i<ddd.length; i++){
    var nd = document.createElement('div');
    nd.classList.add('my_mew_Div');
    nd.innerHTML = 'copia';
    nd.title = 'seleziona e copia negli appunti il contenuto del tag codice'
    nd.addEventListener('click', function(){
      selText(this.nextSibling)
    })
    ddd[i].style.fontSize='larger';
    ddd[i].parentNode.prepend(nd)
  }
}
function selText(me) {    // highlight the text in a DOM element
  var body = document.body,
      rng = null,
      sel = null;
  if(document.createRange && window.getSelection){
    rng = document.createRange();
    try{ sel = window.getSelection(); sel.removeAllRanges(); }
    catch(e){}
    try{ rng.selectNodeContents(me); sel.addRange(rng); }
    catch(e){ rng.selectNode(me); sel.addRange(rng); }
  }else if (body.createTextRange){
    rng = body.createTextRange(); rng.moveToElementText(me); rng.select();
  }
  document.execCommand("copy");
}
})();
« Ultima modifica: Giugno 12, 2019, 02:10:38 pm da Mil-F. »
 
The following users thanked this post: Ubuntu Community Italia, Giuseppe, Gianni, Doctor X, Leonida29, veleno

Offline Giuseppe

  • MODERATORE
  • Utenti Avanzati
  • *****
  • Post: 190
  • Thanked: 261 times
  • Karma: +23/-0
  • Sesso: Maschio
  • La Rivoluzione non si Processa
    • Informatica Free
Re:[ M ] ripritstina copia codice ( si appica a questo forum)
« Risposta #1 il: Giugno 14, 2019, 02:24:58 pm »
Script testato su Opera Browser, e perfettamente funzionante!
Bravissima la Nostra Mil-F
  8)

 
:hip-hop:



P.S. Segnalo solo che ogni tanto il pulsante copia cambia posizione (da solo) sicuramente sarà un bug dovuto al fatto che ViolentMonkey non è direttamente installabile come estensione di opera (dallo store) ma comunque funziona!
« Ultima modifica: Giugno 14, 2019, 02:30:21 pm da Giuseppe »
Non è la fame ma è l'ignoranza che uccide 
 
The following users thanked this post: Gianni, Doctor X, Leonida29

Offline Mil-F.

Re:[ M ] ripritstina copia codice ( si appica a questo forum)
« Risposta #2 il: Giugno 14, 2019, 05:25:23 pm »
grazie  sono utili i feed-back, ho notato che perde lo style dei bordi, prova a cancellare 'black' in ' border:2px outset black; ' alla riga 11
per il fatto che la posizioni in posti diversi è strano.
Prova ad aggiungere // @run-at document-idle subito prima di // ==/UserScript==.
Se non risolve potresti per cortesia
lanciare questo
Codice: [Seleziona]
console.log(document.getElementsByClassName('post')[0].innerHTML)
nella console, se il code è nel primo post del topic, altrimenti cambiando[0] col numero del topic -1 es, 1 per il secondo topic, ecc.
ed incollarmi il risultato :thanks:
 :baciooo_gif:
« Ultima modifica: Giugno 14, 2019, 05:29:02 pm da Mil-F. »
 
The following users thanked this post: Ubuntu Community Italia, Gianni, Leonida29

Offline veleno

Re:[ M ] ripritstina copia codice ( si appica a questo forum)
« Risposta #3 il: Giugno 14, 2019, 06:10:35 pm »
Mil-F avevi ragione è facilissimo utilizzare il tuo programma, ci sono riuscito senza sforzo ecco il risultato   :batti_batti:

avevo scritto anche in altra occasione, ma come fate a fare gli screen grandi?
 
The following users thanked this post: Ubuntu Community Italia, Giuseppe, Mil-F., Gianni, Leonida29

Offline Mil-F.

Re:[ M ] ripritstina copia codice ( si appica a questo forum)
« Risposta #4 il: Giugno 14, 2019, 11:24:31 pm »
8) m i fa piacere

per inserire gli screenshot  è meglio usare un servizio di hosting. il mio preferito è imgur.com , ma bisogna stare attenti a non perdersi guardano le immagini degli altri o ci passi le giornate

ma ce ne sono molti altri basta che segui gli indirizzi delle immagini che trovi
click destro sull'immagine e ne copi l'indirizzo o clicki vedi immagine

meglio evitare di usare gli allegati se non assolutamente indispensabili, perché occupano spazio sul server
ciao :D
« Ultima modifica: Giugno 14, 2019, 11:28:05 pm da Mil-F. »
 
The following users thanked this post: Ubuntu Community Italia, Giuseppe, Gianni, Doctor X, veleno

Offline veleno

Re:[ M ] ripritstina copia codice ( si appica a questo forum)
« Risposta #5 il: Giugno 17, 2019, 02:40:52 pm »
Grazie Mil-F per avermi spiegato come funziona il caricamento delle foto sul sito ma sopratutto per i tuoi script, e pensare che sono un principiante in informatica per me è un grande traguardo esser riuscito ad installare il tuo programmino.
Le mie conoscenze si limitano a sudo apt-get update  :dots:

Sto imparando tante cose e per questo vi dico grazie :thank_you:
 
The following users thanked this post: Giuseppe, Gianni, Leonida29