Debug dell'API di cambio pagina dopo la migrazione

per favore, aiuta a spostare questo dalla sezione di personalizzazione dell’amministrazione del tema alla scheda js nell’interfaccia di amministrazione:

<script type="text/discourse-plugin" version="0.8.19">
api.onPageChange(() => {
	if ( window.location.href === "https://apple.com/123" ) {
		window.location.replace( "https://dell.com/234" );
	}
});
</script>

Sto guardando l’esempio di

export default apiInitializer((api) => {
  // Il tuo codice
});

e questo ha funzionato benissimo per cose come api.renderInOutlet, ma questo onPageChange non ha esempi aggiornati che sono riuscito a trovare.

E se spostassi semplicemente questo:

api.onPageChange(() => {
	if ( window.location.href === "https://apple.com/123" ) {
		window.location.replace( "https://dell.com/234" );
	}
});

in

?

ha. stai scherzando, vero? sì, l’ho provato subito. fallito.

ecco cosa ha funzionato:

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.0", (api) => {
api.onPageChange((url) => {
// url è tipicamente il percorso
// ma in alcuni contesti può essere un URL completo, quindi gestiamo entrambi.
const path = url?.startsWith("http") ? new URL(url).pathname : url;
if (path === "/123") {
      window.location.replace("https://dell.com/234");
}
});

Mi scuso. Ho frainteso la tua domanda.

Sono curioso: quali sono queste situazioni? Non ho mai visto https nell’URL prima, perché a quanto ricordo onPageChange è per i percorsi di Ember.

1 Mi Piace

Ciao, solo per una questione di ordine, ho spostato questo dal thread originale delle note di rilascio a un nuovo argomento per mantenere il thread un po’ più ordinato e migliorare la visibilità. Buona fortuna :+1:

Tuttavia, ho notato nel tuo esempio successivo che non stai più controllando window.location.href. È quello il problema?