Erreurs JS
Cette section répertorie les erreurs Javascript les plus fréquemment rencontrées et signalées par notre communauté.
Require() d’un module ES
Section titled Require() d’un module ESCette erreur (tout comme celle ci-dessous) se produit généralement lorsque vous essayez d’importer le tracker dans un contexte côté serveur (applications SSR, Nuxt, Next, Remix, etc.).
Pour la corriger, il faut s’assurer que le tracker est importé et exécuté dans le contexte du navigateur, via des importations dynamiques, des composants client, etc.
ReferenceError: Navigator is not defined
Section titled ReferenceError: Navigator is not definedCette erreur survient parfois lorsque vous essayez d’importer les plugins tracker-assist ou tracker-fetch ; cela se produit parce que node tente de construire la page sans l’API window dans l’environnement.
La correction est assez simple. Il vous suffit de modifier l’importation classique du plugin posant problème :
import trackerAssist from '@openreplay/tracker-assist/cjs';
Pour l’importer dynamiquement à l’intérieur de componendDidMount ou de son alternative 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 */
De cette façon, tous les plugins dépendant de l’API window seront importés au moment du rendu du composant.
Critical dependency: the request of a dependency is an expression
Section titled Critical dependency: the request of a dependency is an expressionCela peut se produire avec d’anciennes versions du plugin tracker-assist. Vous devriez appliquer ce contournement si vous rencontrez l’erreur ci-dessous lors de la compilation :
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 frameLe tracker OpenReplay capture par défaut les iFrames du même domaine. Cependant, il génère une erreur lorsqu’il tente de capturer un iFrame qui n’appartient PAS au même domaine que votre site web. Vous pouvez soit :
- Désactiver entièrement la fonctionnalité à l’aide de la propriété
captureIFramescomme dans l’exemple ci-dessous :
const tracker = new OpenReplay({
projectKey: PROJECT_KEY,
captureIFrames: false
});
- Continuer à capturer les iFrames (comportement par défaut) en ajoutant l’attribut HTML
data-openreplay-captureuniquement aux balises<iframe>du même domaine. De cette façon, les iFrames d’origine croisée ne seront pas suivis par OpenReplay.
Mon problème n’est pas répertorié
Section titled Mon problème n’est pas répertoriéSi vous rencontrez des erreurs qui ne figurent pas sur cette page, n’hésitez pas à ouvrir un ticket ou simplement à nous contacter sur notre Slack ou à consulter notre Forum pour obtenir de l’aide de notre communauté.
Des questions ?
Section titled Des questions ?Si vous avez des questions concernant ce processus, n’hésitez pas à nous contacter sur notre Slack ou à consulter notre Forum.