Ciao, io ho provato, con Tampermonkey sul Firefox, lo script seguente sulla pagina che tu hai appena scritto (https://smartsite.w3spaces.com/Estrazione_editore.html) e ti posso assicurare che funziona perfettamente: se non hai caricato prima altre pagine, e sul dominio https://smartsite.w3spaces.com non ci sono cookie con la “voce” “Editore moderno”, lui inserisce il valore “Feltrinelli” nel campo Nome.
Se invece, prima carichi la tua “prima pagina” (quella con: Enti, istituzioni e famiglie), viene registrato un cookie (name="voce", value="Editore moderno") e quando poi carichi la pagina “Estrazione_editore” lui non fa niente e il campo Nome resta vuoto, così puoi inserirlo manualmente.
Ma ricorda: entrambe le pagine devono appartenere allo stesso dominio altrimenti i cookie non funzionano; il campo @match deve contenere l'URL del file e il campo @grant deve essere: GM_cookie
// ==UserScript==
// @name Estrazione Editore2
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match file:///D:/Javascript/estrazione%20editore.html
// @icon https://www.google.com/s2/favicons?sz=64&domain=undefined.
// @grant GM_cookie
// ==/UserScript==
(function() {
'use strict';
function getNome(tmp) {
var idx = tmp.indexOf('. ((');
if(idx > -1){
tmp = tmp.substr(0, idx);
}
tmp = tmp.split('. - ');
switch(tmp.length){
case 3:
tmp = tmp[1];
break;
case 4:
tmp = tmp[2];
break;
default:
tmp = "";
break;
}
if(tmp !== ''){
tmp = tmp.substr(tmp.indexOf(' : ') + 2);
console.log(tmp);
if(tmp.indexOf('.') != -1 && tmp.split('.').length == 2){
tmp = tmp.substr(tmp.indexOf('. ') + 1, tmp.indexOf(', ') -3);
tmp = tmp.trim();
}
else {
tmp = tmp.split(",")[0];
tmp = tmp.trim();
}
}
return tmp;
}
function impostaNome(tmp) {
Array.from(document.querySelectorAll('article section.grid_container form div.grid-row label span')).filter( e => e.innerText.trim() === 'Nome')[0].parentNode.querySelector('input').value = tmp;
}
function prendiValore(mio) {
return mio.value;
}
var elencoLabel = document.querySelectorAll("span.grid-6");
if (elencoLabel.length < 8 ) {
GM_cookie.list({name: "voce"}, (mioCookie, error) => {
if (!error) {
var tuttiValori = mioCookie.map(prendiValore);
var presente = tuttiValori.indexOf("Editore moderno");
if (presente == -1)
{
impostaNome(getNome(document.querySelector('div.meta.tito div.evidence.isbd').innerText));
}
}
else {
console.log(error);
}
});
}
})();