Ciao, intanto mi sono accorto che dentro il file "estrazione editore.html" la voce “Feltrinelli” è gia presente come value del campo di input (nella riga 783), quindi me la sono ritrovata già inserita e non capivo perchè. Pertanto, prima di proseguire, andrebbe rimossa tutta la proprietà "value=Feltrinelli".
Poi, ho visto che tampermonkey scrive i cookie, ma poi non li riesce a leggere. Quindi bisogna usare la funzione “GM_cookie” nella riga @grant dell'intestazione, così:
// @grant GM_cookie
e poi modificare di conseguenza lo script da eseguire in "estrazione editore.html", in questo modo:
// ==UserScript==
// @name Estrazione editore
// @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);
}
});
}
})();
Per non sbagliare, ti riporto anche lo script relativo alla pagina "prima pagina".html" che ho modificato, inserendo un'attesa di due secondi, altrimenti, a volte, il cookie non veniva creato:
// ==UserScript==
// @name Prima pagina
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match file:///D:/Javascript/prima%20pagina.html
// @icon https://www.google.com/s2/favicons?sz=64&domain=undefined.
// @grant none
// ==/UserScript==
(function() {
'use strict';
window.setTimeout(generaCookie,2000);
function generaCookie() {
var elencoLabel = document.querySelectorAll("span.grid-6");
if (elencoLabel.length > 8)
{
document.cookie = "voce=";
if (elencoLabel[8].innerText == "Editore moderno")
{
document.cookie = "voce=Editore moderno";
}
}
}
})();
Ricapitolando: se nella prima pagina, sotto la voce "Enti, istituzioni e famiglie" è presente la scritta “Editore moderno” allora, utilizzando lo script per la prima pagina (che avevo già messo nel post precedente), viene registrato un cookie di nome “voce”, col valore “Editore moderno”. Quando poi, si va nella seconda pagina (estrazione editore), se fra i cookie di nome "voce" non è presente il valore “Editore moderno”, allora col tuo codice viene impostato il campo Nome con la scritta “Feltrinelli”.
Buon divertimento