JavaScriptRunner.ms
- JavaScriptRunnerStruct
- _CP1_
- id
- handlerName
- instanceName
- uri
- uriClass
- pathUtility
- webBrowser
- Activate
- DocumentCompleted
- Eval
- GetDocumentMode
- GetUri
- GetUserAgent
- Install
- Invoke
- SetUri
- Uninstall
- defineVariableNames
- dispose
- generateId
- isInstanceOfHtmlDocument
- isInstanceOfUri
- isValidHandler
- isValidInstance
- registerGlobals
- unregisterGlobals
- version
- StructName
- Dump
- Equals
- GetVersion
- StateChanged
- 依存
struct JavaScriptRunnerStruct
MAXScriptからJavaScriptを実行する。
- 補足
ECMAScript5に対応するためには
WebBrowser
のドキュメントモードが11
以上でなければならない。
ドキュメントモードの明示的な指定はHTMLファイルに以下のmeta
要素を記述することで可能。<meta http-equiv='x-ua-compatible' content='ie=edge'>
- 通知
-
通知名 通知データ タイミング #DocumentCompleted
自己インスタンス WebBrowser
のDocumentCompleted
イベント発生直後
public _CP1_
- プロパティ
<String>
作成パラメータ1。JavaScriptを定義したHTMLファイルのURI文字列。
private id
- プロパティ
<String>
グローバル変数名に使用する一意の識別子。
private handlerName
- プロパティ
<String>
イベントハンドラを格納するグローバル変数の名前。
private instanceName
- プロパティ
<String>
自己のインスタンスを格納するグローバル変数の名前。
private uri
- プロパティ
<DotNetObject:System.Uri>
JavaScriptを定義したHTMLファイルのURI。
private uriClass
- プロパティ
<DotNetClass:System.Uri>
private pathUtility
- プロパティ
<Struct:PathUtilityStruct>
private webBrowser
- プロパティ
<DotNetObject:System.Windows.Forms.WebBrowser>
public fn Activate
uri
のHTMLファイルを読み込み、読み込みの完了をオブザーバに通知する。
- 戻り値
<OkClass>
- 補足
実行時の大まかな処理の流れは以下のようになる。
JavaScriptRunner
のインスタンスを生成HTMLの読み込み完了を受けるイベントハンドラを登録
Activate
メソッドの呼び出しによりHTMLの読み込みを開始HTMLの読み込み完了後、非同期処理によりイベントハンドラが呼ばれる
登録したオブザーバに読み込み完了を通知
通知を受け取ったオブザーバ内で
Invoke
メソッドを呼び出して任意のJavaScript関数を実行。イベントハンドラを登録解除し、一連の処理に使用したグローバル変数を削除
利用者側はオブザーバがエントリポイントとなるように設計しなければならない。
具体的な実装例はテストを参照すること。
public fn DocumentCompleted
WebBrowser
のDocumentCompleted
イベントに登録するイベントハンドラ。
- 戻り値
<OkClass>
- 補足
通知完了後にグローバル変数を削除する。
public fn Eval
JavaScriptのeval
関数を実行する。
- パラメータ
input
<String>
JavaScriptコード。
- 戻り値
<Any>
public fn GetDocumentMode
WebBrowser
のドキュメントモードを取得する。
- 戻り値
<Integer>
public fn GetUri
現在のuri
を取得する。
- 戻り値
<DotNetObject:System.Uri|UndefinedClass>
public fn GetUserAgent
WebBrowser
のユーザエージェント文字列を取得する。
- 戻り値
<Integer>
public fn Install
インストールする。
- 戻り値
<OkClass>
- 補足
静的メソッド。
public fn Invoke
uri
のHTMLファイルに定義されたJavaScript関数を実行する。
- パラメータ
methodName
<String>
関数名。
- パラメータ
arguments
<Array[<Any>]>
関数に渡す引数。
- 戻り値
<Any|UndefinedClass>
JavaScript関数の実行結果。ページが読み込まれていない場合は
undefined
を返す。
public fn SetUri
HTMLファイルのパスを設定する。
- パラメータ
input
<String>
パス文字列。
- 戻り値
<DotNetObject:System.Uri>
public fn Uninstall
アンインストールする。
- 戻り値
<OkClass>
- 補足
静的メソッド。
private fn defineVariableNames
イベントハンドラ、およびインスタンスの格納先となるグローバル変数の名前を決定する。
- 戻り値
<OkClass>
private fn dispose
イベントハンドラの削除、およびグローバル変数の削除を行う。
- 戻り値
<OkClass>
private fn generateId
システム時間を基に11桁の数字文字列を生成する。
- 戻り値
<String>
private fn isInstanceOfHtmlDocument
- パラメータ
obj
<Any>
- 戻り値
<BooleanClass>
private fn isInstanceOfUri
- パラメータ
obj
<Any>
- 戻り値
<BooleanClass>
private fn isValidHandler
- 戻り値
<BooleanClass>
private fn isValidInstance
- 戻り値
<BooleanClass>
private fn registerGlobals
自己のインスタンスとイベントハンドラのグローバル変数を登録する。
- 戻り値
<OkClass>
private fn unregisterGlobals
登録したグローバル変数を削除する。
- 戻り値
<OkClass>
private version
- プロパティ
<Array[<Integer>]>
バージョン番号。メジャー、マイナー、パッチの順。
public fn StructName
- 戻り値
<Name>
public fn Dump
- パラメータ
indent:
<String>
- パラメータ
out:
<FileStream|StringStream|WindowStream>
出力先。既定値は
listener
。
- 戻り値
<OkClass>
public fn Equals
- パラメータ
obj
<Any>
- 戻り値
<BooleanClass>
- 補足
大文字と小文字を区別する。
public fn GetVersion
- 戻り値
<Array[<Integer>]>
public StateChanged
- プロパティ
<Struct:ObservableStruct>