Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Buongiorno, mi sembra chiaro il tuo ragionamento, ma ahimé, anche con il metodo load e la semplificazione del tuo ultimo script, la situazione non cambia, ovvero le localizzazioni si aprono solo aggiornando la pagina.

  2. #12
    Buongiorno, stesso problema col metodo load e lo script semplificato. Questo script con MutationObserver mi sembra invece funzionare, ma c'è lo zampino della mano artificiale, magari si può migliorare... link.

    Non riesco però ad applicare lo stesso metodo per un altro script, anche questo funziona solo aggiornando la pagina. Vorrei semplicemente che su un popup venisse evidenziata la stringa "Biblioteca Elsa Morante".
    Il percorso per arrivarci è questo:
    Dalla pagina iniziale del portale inserisco per esempio "Umberto Eco" nel campo "Cerca nel catalogo".
    Nella pagina successiva, quella con la lista dei risultati, clicco dal pannello a destra sotto:
    "Naviga tra i risultati" > "Biblioteca" > "tutte" (cfr. screenshot).

    Questo lo userscript che ho provato:
    codice:
    (function() {
        'use strict';
    
    
            document.addEventListener('click', function(event) {
            var target = event.target;
            if (target.tagName === 'A' && target.textContent.trim() === 'tutte') {
                setTimeout(highlightTerm, 400); 
            }
        });
    
    
        function highlightTerm() {
            var elsaMoranteLink = document.querySelector("#faccette_tutte > div > ul > li.facet-rmbo2 > a");
            if (!elsaMoranteLink) return;
    
    
            // Aggiungo una classe CSS per evidenziare l'elemento
            elsaMoranteLink.style.backgroundColor = 'yellow';
        }
    })();

    Grazie di nuovo!
    Ultima modifica di Annuitcoeptis; 04-06-2024 a 09:41

  3. #13
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,719
    Quote Originariamente inviata da Annuitcoeptis
    Questo script con MutationObserver mi sembra invece funzionare
    Bene evidentemente, per qualche motivo, l'elemento in questione non risulta subito disponibile al load. Con MutationObserver in effetti puoi controllare quando l'elemento risulta essere disponibile.

    Quote Originariamente inviata da Annuitcoeptis
    Non riesco però ad applicare lo stesso metodo per un altro script
    ...
    Nella pagina successiva, quella con la lista dei risultati
    ...
    Questo lo userscript che ho provato
    Vedo però che qui non stai usando MutationObserver.

    Ad ogni modo, da ciò che ho provato, il selettore "#faccette_tutte > div > ul > li.facet-rmbo2 > a" non corrisponde ad alcun elemento in quella pagina.
    Il link "tutte" potrebbe invece essere selezionato con una cosa di questo tipo: "#wfaccettezone > details[data-group="BIBL"] > .facet-other > a".

    Puoi chiarire?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #14
    Grazie. il selettore "#faccette_tutte > div > ul > li.facet-rmbo2 > a" dovrebbe corrispondere a quello della stringa "Biblioteca Elsa Morante" (quando presente), nell'elenco delle biblioteche all'interno del popup che si apre dopo aver premuto su "tutte".
    Non ho inserito il MutationObserver nel nuovo script in quanto sembrava non funzionare più. Domani farò altre prove, integrendo i tuoi suggerimenti.
    Ultima modifica di Annuitcoeptis; 05-06-2024 a 08:06

  5. #15
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,719
    Ok, perdonami non avevo compreso bene che l'elemento da cercare era quello nel popup, pensavo volessi eseguire invece il click automatico per il link "tutte".

    Se l'intento è solo quello di "evidenziare" un certo elemento, potresti semplicemente includere al volo del CSS nella pagina in modo tale che, quando l'elemento sarà presente, risulti evidenziato.
    Quando l'elemento invece non è presente, poco importa, resterà qualche riga di CSS inutilizzata ma questo è irrilevante ai fini pratici.

    Se usi una estensione che permette di inserire direttamente del CSS per quella tale pagina, puoi applicare direttamente una roba del genere:
    codice:
    #faccette_tutte > div > ul > li.facet-rmbo2 > a {
      background-color: yellow;
    }
    Se invece devi includere il CSS tramite script, puoi creare ed inserire un elemento style in head con una roba del genere (sempre che l'evento load funzioni come dovrebbe):
    codice:
    (()=>{
      window.addEventListener('load', ()=>{
        const el = document.createElement('style');
        el.type = 'text/css';
        el.innerHTML = '#faccette_tutte > div > ul > li.facet-rmbo2 > a {background-color: yellow;}';
        document.head.appendChild(el);
      });
    })();

    Prova e fai sapere
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #16
    Di nulla. Stesso problema col tuo script (inclusivo del CSS), funziona ma solo al refresh della pagina. Ho anche provato invano ad aggiungere un MutationObserver:
    codice:
    const observer = new MutationObserver(mutations => {
      mutations.forEach(mutation => {
        if (mutation.addedNodes.length > 0) {
          const target = document.querySelector('#faccette_tutte > div > ul > li.facet-rmbo2 > a');
          if (target) {
            const style = document.createElement('style');
            style.type = 'text/css';
            style.innerHTML = '#faccette_tutte > div > ul > li.facet-rmbo2 > a {background-color: yellow;}';
            document.head.appendChild(style);
            observer.disconnect();
          }
        }
      });
    });
    
    
    observer.observe(document.body, { childList: true, subtree: true });
    Ultima modifica di Annuitcoeptis; 06-06-2024 a 10:11

  7. #17
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,719
    A questo punto ho l'impressione che dipenda dal tuo gestore di script, cosa usi al momento? magari controlla se puoi abilitare qualche impostazione con cui far eseguire lo script ad inizio pagina.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #18
    Uso User JavaScrip and CSS, in effetti ora sembra funzionare anche senza cambiare impostazioni, boh! Grazie sempre per la tua disponibilità, KillerWorm! In caso di problemi ti aggiorno

  9. #19
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,719
    Quote Originariamente inviata da Annuitcoeptis
    Uso User JavaScrip and CSS
    Per esperienza personale, e come tu stesso hai accennato, consiglio di passare ad uno dei gestori della famiglia "Monkey" per tutti i tuoi script utente. In linea generale, rispetto ad altre estensioni del genere, ti permettono di avere una gestione a "livello più basso" degli script.

    Quote Originariamente inviata da Annuitcoeptis
    in effetti ora sembra funzionare anche senza cambiare impostazioni
    Chissà, forse un problema di cache

    Quote Originariamente inviata da Annuitcoeptis
    Grazie sempre per la tua disponibilità
    Figurati, mi fa piacere che alla fine abbia funzionato.
    Alla prossima
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #20
    Purtroppo utilizzo vari manager per gestire varie piattaforme o insiemi di script, come scrivevo al terzo post. Sembra che allo stato non ne esista uno gratuito che supporti i profili/cartelle. Buona giornata e di nuovo grazie!
    Ultima modifica di Annuitcoeptis; 07-06-2024 a 08:38

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.