Contexte JavaScript

JavaScript Contexte

La couche de script fournit un contexte d’évaluation JavaScript contrôlé pour les documents qui en ont besoin. Elle est délibérément guidée par la politique: la résolution des modules est explicite, et les échecs apparaissent sous forme d’exceptions typées.


Le Contexte d’Évaluation

JSContext héberge l’évaluation des scripts. Les erreurs levées pendant l’évaluation apparaissent sous forme de JSEvaluationError, maintenant les échecs de script distincts des erreurs côté Python.

Chargement de modules

La résolution des modules est régie par ModuleRegistry, qui associe les spécificateurs de modules aux implémentations. Les modules manquants déclenchent ModuleNotFoundError (l’erreur typée propre à la bibliothèque) plutôt que de renvoyer silencieusement des stubs.

Politiques de Chargement

ModuleLoadPolicy contrôle ce qu’un contexte est autorisé à charger — le mécanisme d’isolation du comportement des scripts dans le traitement côté serveur où l’accès arbitraire aux modules est indésirable.


Conseils et bonnes pratiques

  • Enregistrez uniquement les modules dont votre scénario de traitement a besoin; un petit registre constitue le bac à sable.
  • Interceptez JSEvaluationError séparément des exceptions génériques afin de distinguer les bugs de script des bugs de pipeline.
  • Considérez ModuleNotFoundError comme un signal de politique, pas comme une condition fatale — cela signifie souvent que l’entrée attend un API de navigateur que vous avez choisi de ne pas fournir.

Problèmes courants

ProblèmeCauseCorrection
ModuleNotFoundError lors de l’évaluationModule non enregistréAjoutez-le à ModuleRegistry ou ajustez la politique
L’échec du script fait planter le pipelineJSEvaluationError non détectéGérez-le à la frontière d’évaluation
Accès inattendu au modulePolitique trop permissiveResserrez ModuleLoadPolicy

FAQ

L’évaluation du script est-elle requise pour l’analyse?

Non — l’analyse, le CSSOM et la mise en page fonctionnent sans aucun contexte de script.

Comment contrôler ce que les scripts peuvent importer?

Via ModuleRegistry (ce qui existe) et ModuleLoadPolicy (ce qui peut être chargé).

Comment les erreurs de script se manifestent-elles?

En tant qu’exceptions JSEvaluationError du côté Python.


API Reference Résumé

Classe/MéthodeDescription
JSContextJavaScript contexte d’évaluation
ModuleRegistryRegistre des spécificateurs de modules
ModuleLoadPolicyContrôle de la politique de chargement des modules
JSEvaluationErrorÉchec de l’évaluation du script typé
ModuleNotFoundErrorÉchec du module manquant typé

Voir aussi

 Français