Wie man den JavaScript-Kontext in Python verwendet
Die Skripting-Ebene von Aspose.HTML FOSS für Python ist explizit und richtlinienbasiert: Während des Parsens wird nichts ausgeführt, und wenn Sie Skripte auswerten, führt JSContext sie aus, wobei der Modulzugriff von ModuleRegistry und ModuleLoadPolicy gesteuert wird. Dieser Leitfaden erklärt die Bestandteile und das Fehlermodell und verwendet pip für die Installation.
Schritt-für-Schritt-Anleitung
Schritt 1: Paket installieren
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Schritt 2: Erforderliche Klassen importieren
from aspose_html.js import JSContext, ModuleRegistry, ModuleLoadPolicySchritt 3: Das Evaluationsmodell verstehen
JSContext hostet die Auswertung. Skriptfehler tauchen als der typisierte JSEvaluationError auf der Python-Seite auf und halten Skriptfehler von Pipeline-Fehlern getrennt.
Schritt 4: Modulzugriff steuern
ModuleRegistry ordnet Modulspezifizierer Implementierungen zu — das Register ist die Sandbox. Fehlende Module lösen den typisierten ModuleNotFoundError der Bibliothek aus; ModuleLoadPolicy bestimmt, was ein Kontext überhaupt laden darf.
Häufige Probleme und Lösungen
Evaluation löst ModuleNotFoundError aus. Das Skript importiert ein Modul, das Sie nicht registriert haben — fügen Sie es hinzu. ModuleRegistry oder behandeln Sie den Fehler als Policy-Signal.
Ein Skriptfehler lässt die Pipeline abstürzen. Catch JSEvaluationError an der Evaluationsgrenze.
Skripte greifen auf mehr zu als beabsichtigt. Tighten ModuleLoadPolicy und verkleinern das Register — kleine Register sind das Ziel.
Häufig gestellte Fragen
Werden Skripte beim Parsen ausgeführt?
Nein. Beim Parsen werden niemals Skripte ausgeführt; die Auswertung erfolgt explizit über JSContext.
Wie sandboxe ich das Skriptverhalten?
Registriere nur die benötigten Module in ModuleRegistry und beschränke das Laden mit ModuleLoadPolicy.
Wie werden Skriptfehler in Python sichtbar?
Als JSEvaluationError-Ausnahmen.