jsmode文(Ver9.35対応版)
目次−
JavaScript対応−
jsmode文
jsmode文は、スクリプトエンジンの指定と、グローバル記述の指定をします。(V9.19以降)
js{}の外側で普通のマクロ文として実行します。
- パラメータ1(文字列型または数値型、省略可能)
-
文字列でスクリプトエンジンを指定します。
数値だけを指定した場合、パラメータ2相当のグローバルの指定だけを切り替えます。
省略した場合は"JScript"と同じです。
- パラメータ2(数値型、省略可能)
-
1を指定すると、hidemaruGlobalオブジェクトのメソッド等をグローバルに展開し、オブジェクト名を書かなくても使えるようになります。
0の場合は展開せず、hidemaruオブジェクトとhidemaruGlobalオブジェクトがあるだけです。
省略した場合は1と同じです。
- 結果コード
-
成功時は、resultは0以外になります。
失敗時は、resultは0になります。
jsmodeで指定する文字列は、名前ごとの固有の実体であることも表していて、別のオブジェクトや変数を持ちます。
スクリプトエンジンの判断は、\までで判定しています。
例えば、"JScript"と"WebView2"は、別の実体になります。
例えば、"JScript\\myspace"と"JScript\\orespace"は、スクリプトエンジンの判断は"JScript"までで、\以降までを含めた文字列全体は別になり、実体も別になります。
同じ名前でもグローバル展開の有無の違いによっても別の実体になります。
例 |
jsmode "JScript\\myspace";
js{
its = "mine";
}
jsmode "JScript\\orespace";
js{
its = "oreno";
}
jsmode "JScript\\myspace";
js{
message(its);
}
|
スクリプトエンジンを省略した場合はJScriptと同じで、\から書くことで名前だけを指定できます。
例 |
jsmode "\\myspace";
js{
}
jsmode "JScript\\myspace";
js{
}
|
名前をcurrentmacrofilenameにすることで、他のマクロと被りにくいようにできます。
例 |
jsmode "\\" + currentmacrofilename;
js{
}
|
同じ名前でもJscriptとWebView2は別々です。
例 |
jsmode "JScript\\myspace";
js{
}
jsmode "WebView2\\myspace";
js{
}
|
jsmode "";とすると、スクリプトエンジンの指定は既定のJScriptに戻り、次に実行するjs{}またはexecjsはリセットされた状態で実行されます。
jsmode "allreset";とすると、現在の秀丸エディタ上に残っている他の実行空間・名前空間を全てリセットします。
例 |
jsmode "";
js{
message(typeof(newvar));
newvar = "hoge";
}
|
参照:
hidemaru.getJsMode