Pagina 5 di 6 primaprima ... 3 4 5 6 ultimoultimo
Visualizzazione dei risultati da 41 a 50 su 53
  1. #41
    Ok, thanks!

  2. #42

  3. #43
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Qui lo snippet ("micro libreria") che puoi inserire come regola prima di tutte le altre:

    codice:
    /* -------------------------------------------------------------- */
    /*               GESTIONE FLAG PER "TORNA INDIETRO"               */
    /*                                                                */
    /* Questo blocco deve essere definito una sola volta inizialmente */
    /* e vale per tutte le pagine                                     */
    /* -------------------------------------------------------------- */
    
    
    var _azioneConsentita;
    (()=>{
      function rimuoviFlag(){
        sessionStorage.removeItem('azioneNegata');
      }
      const flag = sessionStorage.getItem('azioneNegata');
      if (flag) window.addEventListener('beforeunload', rimuoviFlag);
    
    
      _azioneConsentita = !flag;
    
    
      const btnIndietro = document.querySelector('.navbithome > a');
      //const btnIndietro = document.querySelector('a.back[title="Indietro"]');
      if (btnIndietro){
        btnIndietro.addEventListener('click', e=>{
          window.removeEventListener('beforeunload', rimuoviFlag);
          sessionStorage.setItem('azioneNegata', true);
        });
      }
    })();
    Questo script si occupa appunto di gestire la creazione/rimozione del flag, in base al fatto che si prema il pulsante "Indietro" o si esca dalla pagina per altri motivi.

    Negli altri script puoi quindi usare la variabile _azioneConsentita, inserendola in una condizione, per stabilire quando l'autoclick (o quel che è) deve, o no, essere eseguito. Questa variabile avrà infatti valore false se si è usato il pulsante "Indietro" per cui l'azione automatica non va eseguita, altrimenti avrà valore true.

    Il primo script in questione può essere impostato quindi in questo modo:
    codice:
    const btnStampa = document.querySelector('[title="Stampa etichette"]');
    if (_azioneConsentita && btnStampa) btnStampa.click();
    Il secondo script, in questo modo:
    codice:
    const labels = document.querySelectorAll('label');
    const elMessage = document.querySelector('.messages.confirms');
    if (_azioneConsentita && labels[1].innerText == 'Modello di stampa' && !(elMessage && elMessage.textContent.trim() === 'La stampa è stata inoltrata')){  
      document.getElementsByClassName("button confirm")[0].click();
      setTimeout(()=>{
        const labels = document.querySelectorAll('label');
        if (labels[1].innerText == 'Modello di stampa'){
          document.getElementsByClassName("reports")[0].click();
        }
      },200);
    }
    Quest'ultimo non ho avuto modo di testarlo per via delle due condizioni particolari. Vedi intanto se funziona, altrimenti cerchiamo di capire come meglio impostarlo.

    Ad ogni modo ti invito a cercare di comprendere la logica usata. Ho usato nomi e valori abbastanza autodescrittivi e lo script è tutto sommato semplice; non sono solito dare sempre la minestra pronta ma è piuttosto mio interesse cercare di far comprendere un metodo di applicazione così che si riesca a destreggiarsi per risolvere da se stessi eventuali future problematiche a riguardo.

    Se ti servono chiarimenti chiedi pure.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #44
    Grazie mille, interessante lo snippet "una tantum"! Purtroppo per il primo miniscript, Stampa etichette, funziona l'autoclick, ma la pagina non torna indietro, perchè agisce l'autoclick. Quanto al secondo script, funziona solo il click della conferma di stampa, ma non il click sul tasto report (in alto a destra) che porterebbe alla pagina successiva (lista report). La pagina con la conferma stampa non torna indietro perchè agisce anche qui l'autoclick, se però disattivo lo script stampa etichette la pagina torna indietro.
    Ultima modifica di Annuitcoeptis; 27-12-2022 a 14:16

  5. #45
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Capisco

    Mi scuso in anticipo se posso sembrare polemico ma apro una piccola parentesi.

    Come ti ho indicato: "Se ti servono chiarimenti chiedi pure"

    Ti parlo in maniera formale (senza alcuna offesa). Non conosco il tuo livello di preparazione su JavaScript o riguardo la programmazione in generale, e di certo non è mia pretesa che tu diventi programmatore attraverso una discussione in un forum. Ad ogni modo questa è una sezione tecnica per cui chi chiede aiuto qui deve presumibilmente impegnarsi a comprendere ciò che gli viene fornito e cercare di applicarsi nell'adattarlo al meglio alle proprie esigenze. In caso contrario, se stai chiedendo una soluzione pronta all'uso (anche gratuitamente), ti invito a porre la tua richiesta nella sezione Offro lavoro/collaborazione.

    Chiusa parentesi.

    Ora vorrei veramente che tu riflettessi sullo script che ho fornito e non limitarti a fare copia-incolla.

    A parte le problematiche riscontrate, nello script noti qualcosa di strano o che non ti torna?

    Sarei felice di chiarire qualsiasi dubbio in merito.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #46
    Figuarati, cerco di capire e seguirti per quanto mi è possibile. Ho modificato

    codice:
    ('.navbithome > a')

    con:

    codice:
    ('a.back[title="Indietro"]')


    In questo modo l'autoclick Stampa etichette ed il tasto Indietro funzionano, ma non funziona l'autoclick del tasto Report (in alto a destra, anche risettando il timeout ad un valore temporale maggiore), che porterebbe alla pagina successiva (Lista report) da cui poter andare indietro. Non so perchè non funziona quest'ultima parte relativa allo script del report, ma ho risolto eliminandola e creando un nuovo script simile all'originario. Ora sembra funzionare tutto.

    E' possibile modificare lo snippet principale in modo poter andare indietro anche cliccando il tasto Esci, oltre al tasto Indietro? Il codice del pulsante Esci per ogni pagina sarebbe:


    codice:
    <a title="" class="button back " draggable="false" href="/sebina/catalogazione/D_INV_DET.do?codFnz=D_INV_DET&amp;operation=esci">
          <span>
            Esci</span>
        </a>

    codice:
    <a title="" class="button back " draggable="false" href="/sebina/catalogazione/D_STA_ETICOLACQ_GES.do?codFnz=D_STA_ETICOLACQ_GES&amp;operation=esci">
          <span>
            Esci</span>
        </a>
    codice:
    <a title="" class="button back " draggable="false" href="/sebina/spooler/S_SPO_DIS_GES.do?codFnz=S_SPO_DIS_GES&amp;operation=esci">
          <span>
            Esci</span>
        </a>



    Grazie di nuovo!

    Ultima modifica di Annuitcoeptis; 28-12-2022 a 14:46

  7. #47
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Quote Originariamente inviata da Annuitcoeptis
    Ho modificato
    ...[/CODE]
    con:
    Bene, quella era sicuramente una mia dimenticanza
    Dal momento che non posso testare direttamente sul sito in questione ho fatto varie prove su altre pagine, tra una cosa e l'altra ho scordato di "scambiare" quella riga commentata.

    E' giusto quindi come hai corretto.

    Quote Originariamente inviata da Annuitcoeptis
    Non so perchè non funziona quest'ultima parte relativa allo script del report
    Il timeout ho voluto inserirlo dentro la prima condizione di proposito perché ho pensato (evidentemente male) che lasciando le due parti slegate (come da tuo script originale) si potessero creare conflitti dal momento che la seconda condizione è sempre verificata anche quando avviene la prima.

    Ora però ho capito che probabilmente quel timeout serve proprio a tal proposito

    Mi fa comunque piacere che tu sia riuscito a ripristinarlo da te.

    Quote Originariamente inviata da Annuitcoeptis
    E' possibile modificare lo snippet principale in modo poter andare indietro anche cliccando il tasto Esci
    Penso si possa fare.

    Bisogna capire come identificare quell'elemento. Vedo che entrambi i pulsanti "indietro" ed "esci" hanno in comune la classe .back, per cui è possibile identificarli entrambi attraverso tale classe, sempre che questa non sia usata anche altrove per diversi motivi.

    Provo ad apportare questa modifica e ti aggiorno a breve.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #48
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Proviamo in questo modo:
    codice:
    /* -------------------------------------------------------------- */
    /*               GESTIONE FLAG PER "TORNA INDIETRO"               */
    /*                                                                */
    /* Questo blocco deve essere definito una sola volta inizialmente */
    /* e vale per tutte le pagine                                     */
    /* -------------------------------------------------------------- */
    
    var _azioneConsentita;
    (()=>{
      function rimuoviFlag(){
        sessionStorage.removeItem('azioneNegata');
      }
      const flag = sessionStorage.getItem('azioneNegata');
      if (flag) window.addEventListener('beforeunload', rimuoviFlag);
    
      _azioneConsentita = !flag;
    
      // Elementi per i quali applicare il flag
      const elementiFlag = document.querySelectorAll('a.back');
    
      elementiFlag.forEach(el => {
        el.addEventListener('click', e=>{
          window.removeEventListener('beforeunload', rimuoviFlag);
          sessionStorage.setItem('azioneNegata', true);
        });
      });
    })();
    Giusto per chiarire cosa ho fatto, nota che ho usato querySelectorAll per selezionare una collezione di elementi corrispondenti a quel selettore ('a.back') che si presume identifichi i due pulsanti in questione, quindi vado a ciclarli con forEach nel quale applico, per ciascuno, un listener in cui viene attivato il sistema col flag.

    Fai sapere.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #49
    Grazie! Sembrava funzionare tutto bene finchè non mi accorgo che nella lista report finale di stampa ora escono degli errori di stampa e varia il formato di stampa, cfr. qui. Ho provato a ripristinare il primo snippet, a disabilitare uno per uno gli script, a riloggarmi, a riavviare il browser (Chrome) ed a pulire la cache, ma il problema persiste: l'unico modo per evitare quegli errori è addirittura disabilitare l'estensione. Possibile?
    Ultima modifica di Annuitcoeptis; 28-12-2022 a 17:46

  10. #50
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Quote Originariamente inviata da Annuitcoeptis
    l'unico modo per evitare quegli errori è addirittura disabilitare l'estensione. Possibile?
    Perdonami ma non capisco di che "errori di stampa" parli. Tutto è possibile ma, ripeto, mi viene difficile aiutarti non avendo la situazione davanti.

    Se hai disabilitato gli script che ti ho fornito fin'ora, ma il problema rimane, mi pare logico che non dipenda da quegli script.
    Suppongo ci sia qualche altra cosa che influisce.

    Verifica intanto se nella console (attivando il filtro "Errori") salta fuori qualche errore di script.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2025 vBulletin Solutions, Inc. All rights reserved.