Python で JavaScript コンテキストを使用する方法

Python で JavaScript コンテキストを使用する方法

Aspose.HTML FOSS for Python のスクリプト層は明示的でポリシー駆動です:解析中に何も実行されず、スクリプトを評価する際には、JSContext がそれらを実行し、モジュールへのアクセスは ModuleRegistry と ModuleLoadPolicy によって制御されます。このガイドでは、構成要素と障害モデルを説明し、インストールには pip を使用します。

ステップバイステップガイド

ステップ1: パッケージをインストールする

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

ステップ2: 必要なクラスをインポートする

from aspose_html.js import JSContext, ModuleRegistry, ModuleLoadPolicy

ステップ3: 評価モデルを理解する

JSContext は評価をホストします。スクリプトの失敗は Python 側で型付けされた JSEvaluationError として現れ、スクリプトのバグをパイプラインのバグと区別します。


ステップ 4: モジュールアクセスの制御

ModuleRegistry はモジュール指定子を実装にマッピングします — レジストリがサンドボックスです。モジュールが見つからないとライブラリの型付けされた ModuleNotFoundError が発生します;ModuleLoadPolicy はコンテキストがロードできるもの全体を制御します。

一般的な問題と修正

評価が ModuleNotFoundError を引き起こします。 スクリプトが登録していないモジュールをインポートしています — それを追加してください ModuleRegistry またはエラーをポリシーシグナルとして扱う。

スクリプトの失敗はパイプラインをクラッシュさせます。 Catch JSEvaluationError 評価境界において。

スクリプトが意図した以上にアクセスします。 Tighten ModuleLoadPolicy レジストリを縮小し — 小さなレジストリこそがポイントです。

よくある質問

パース中にスクリプトは実行されますか?

いいえ。パースでは決してスクリプトは実行されません。評価は JSContext を通じて明示的に行われます。

スクリプトの挙動をサンドボックス化するにはどうすればよいですか?

ModuleRegistry に必要なモジュールだけを登録し、ModuleLoadPolicy でロードを制限します。

スクリプトエラーは Python でどのように表れますか?

JSEvaluationError 例外として。

参照

 日本語