Errori JS
Questa sezione elenca gli errori JavaScript più frequenti, segnalati dalla nostra community.
Require() of ES module
Section titled Require() of ES moduleQuesto errore (così come quello successivo) si verifica in genere quando provi a importare il tracker in un contesto lato server (SSR, app Nuxt, Next, Remix e così via).
Per risolverlo devi assicurarti che il tracker venga importato ed eseguito nel contesto del browser, tramite import dinamici, componenti client e così via.
ReferenceError: Navigator is not defined
Section titled ReferenceError: Navigator is not definedA volte questo errore si verifica quando provi a importare i plugin tracker-assist o tracker-fetch: succede perché node sta cercando di compilare la pagina senza l’API window nell’ambiente.
La soluzione è piuttosto semplice. Basta modificare l’import normale del plugin che causa il problema:
import trackerAssist from '@openreplay/tracker-assist/cjs';
Sostituiscilo con un import dinamico all’interno di componendDidMount o dell’alternativa useEffect:
import Tracker, { Options } from "@openreplay/tracker";
const tracker = new Tracker({ /* your options */ });
class TrackerComponent extends React.Component {
componentDidMount = () => {
import(‘@openreplay/tracker-assist/cjs’).then(({ default: trackerAssist }) => {
tracker.start(/* your options */)
tracker.use(trackerAssist(/* your assist options */))
})
}
/* Other code */
In questo modo tutti i plugin che dipendono dall’API window verranno importati quando il componente viene renderizzato.
Critical dependency: the request of a dependency is an expression
Section titled Critical dependency: the request of a dependency is an expressionPuò succedere con le vecchie versioni del plugin tracker-assist. Se durante la compilazione incontri l’errore riportato di seguito, applica questo workaround:
Failed to compile.
./node_modules/peerjs/dist/peerjs.min.js
Critical dependency: the request of a dependency is an expression
Uncaught DOMException: Blocked a frame with origin “X” from accessing a cross-origin frame
Section titled Uncaught DOMException: Blocked a frame with origin “X” from accessing a cross-origin framePer impostazione predefinita, il tracker di OpenReplay cattura gli iFrame dello stesso dominio. Tuttavia, genera un errore quando cerca di catturare un iFrame che NON appartiene allo stesso dominio del tuo sito web. Puoi scegliere tra:
- Disabilitare l’intera funzionalità usando la proprietà
captureIFrames, come nell’esempio seguente:
tracker.configure({
projectKey: PROJECT_KEY,
captureIFrames: false
});
- Continuare a catturare gli iFrame (comportamento predefinito) aggiungendo l’attributo HTML
data-openreplay-capturesolo ai tag<iframe>dello stesso dominio. In questo modo, gli iFrame cross-origin non verranno tracciati da OpenReplay.
Il mio problema non è nell’elenco
Section titled Il mio problema non è nell’elencoSe incontri errori che non sono elencati in questa pagina, puoi aprire una issue oppure scriverci semplicemente sul nostro Slack per ricevere aiuto dalla nostra community.
Hai domande?
Section titled Hai domande?Se hai domande su questa procedura, non esitare a contattarci su Slack.