Mi scusi la mia inesperienza sull’argomento, ma come gestisce Discourse il clic sul link del menu hamburger?
Contesto: Sto utilizzando il servizio prerender.io per fornire una versione HTML del sito principale (versione JS del sito)
Il link hamburger <s/>menu<s/> non funziona.
<s/>Puoi testare ( [il sito](https://discuss.flynumber.com/) ) utilizzando gli strumenti per sviluppatori di Chrome e cambiando l'agente in Googlebot smartphone. Quando si utilizza l'agente utente Googlebot, si ottiene di fatto la versione HTML prerender.<s/>
Nota a margine: Secondo questo post del blog di prerender, potrebbe avere problemi con codice come
Tutti i link devono essere tra tag <a></a> e definire un URL di destinazione nell’attributo href affinché Google possa trovarlo e seguirlo.
Forse il link del menu principale viene generato utilizzando questo metodo?
Qualsiasi idea su una soluzione sarebbe molto apprezzata.
Modifica Ho rimosso temporaneamente il sito da prerender (ma continuo a servire la versione JS ai bot) - Sorprendentemente, Google bot sembra renderizzarlo correttamente di tanto in tanto. Inoltre, non ho problemi con il menu quando utilizzo Google bot come agente utente in Chrome. Testerò questo per un po’.
Mi scuso, ho reso una domanda semplice piuttosto confusa…
I link all’interno del menu sembrano a posto, il mio problema è solo il link effettivo dell’hamburger - quando viene renderizzato con prerender non si apre.
Questo post di @Johani è stato di grande aiuto nel tentativo di diagnosticare
Sono sulla strada giusta guardando questo pezzo di codice (per quanto riguarda la funzionalità quando si fa clic sul menu hamburger)?
Il menu viene aggiunto al documento con Javascript quando il pulsante viene cliccato, quindi non sarà facilmente convertibile per funzionare su una versione del sito solo HTML.
Ecco dove viene aggiunto il pulsante, puoi vedere che ha un’azione chiamata toggleHamburger:
toggleHamburger cambia lo stato di hamburgerVisible, quindi il menu viene infine aggiunto con panels.push(this.attach("hamburger-menu")); che puoi vedere qui:
Risposta di qualità @awesomerobot, sono sicuro che la community la apprezzi.
Darò un’occhiata per vedere se il lavoro personalizzato ne vale la pena.
La risposta che ho ricevuto da prerender.io è stata fondamentalmente che se utilizza “JS complicato” probabilmente non funzionerà. Non sono sicuro di quanto bene abbiano studiato la situazione, però.