Comment utiliser le contexte JavaScript dans Python
La couche de script de Aspose.HTML FOSS pour Python est explicite et guidée par des politiques: rien ne s’exécute pendant l’analyse, et lorsque vous évaluez des scripts, JSContext les exécute avec un accès aux modules contrôlé par ModuleRegistry et ModuleLoadPolicy. Ce guide explique les composants et le modèle d’échec, en utilisant pip pour l’installation.
Guide étape par étape
Étape 1: Installer le paquet
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Étape 2: Importer les classes requises
from aspose_html.js import JSContext, ModuleRegistry, ModuleLoadPolicyÉtape 3: Comprendre le modèle d’évaluation
JSContext héberge l’évaluation. Les échecs de script apparaissent sous la forme du JSEvaluationError typé du côté Python, gardant les bugs de script distincts des bugs du pipeline.
Étape 4: Contrôle de l’accès aux modules
ModuleRegistry associe les spécificateurs de modules aux implémentations — le registre est le bac à sable. Les modules manquants déclenchent le ModuleNotFoundError typé de la bibliothèque; ModuleLoadPolicy détermine ce qu’un contexte peut charger en tout.
Problèmes courants et correctifs
L’évaluation soulève ModuleNotFoundError. Le script importe un module que vous n’avez pas enregistré — ajoutez-le à ModuleRegistry ou traitez l’erreur comme un signal de politique.
Une défaillance de script fait planter le pipeline. Catch JSEvaluationError à la frontière de l’évaluation.
Les scripts accèdent à plus que prévu. Tighten ModuleLoadPolicy et réduisez le registre — les petits registres sont l’objectif.
Foire aux questions
Les scripts s’exécutent-ils lors de l’analyse?
Non. L’analyse n’exécute jamais de scripts; l’évaluation est explicite via JSContext.
Comment mettre le comportement des scripts en sandbox?
Enregistrez uniquement les modules nécessaires dans ModuleRegistry et restreignez le chargement avec ModuleLoadPolicy.
Comment les erreurs de script apparaissent-elles dans Python?
Sous forme d’exceptions JSEvaluationError.