|
jsmode の createobject の話題が出たので便乗です
createobject の基本的な用途が WebView2 では動作せずエラーとなり、JScript なら動作するが
イマドキに必要な機能が揃っていないので関連する処理の実装が難しく遠回り過ぎて面倒くさく
大きなテキスト(バイナリデータ化は更に問題外)を渡すのに非同期モードでは setStaticVariable(,,-1) で受け渡しできず
秀丸マクロのそういうもんだ作法で諦めておりましたが
解決法や修正の可能性はあるのでしょうか?
以下の2つのマクロは JScript であれば動作しますが、WebView2 では動作してくれません
// 秀丸エディタ Version 9.39 32bit edition
debuginfo 2;
jsmode "WebView2"; // WebView2 では Enumerable なコレクションを取り出す方法がない?
js {
try {
var fso = hidemaru.createObject("Scripting.FileSystemObject");
var folders = fso.GetFolder("C:\\").SubFolders;
for(var objEnum = new Enumerator(folders); !objEnum.atEnd(); objEnum.moveNext()) {
strFileName = objEnum.item();
console.log(strFileName);
}
} catch (err) { console.log("catch : " + err); }
}
jsmode "WebView2"; // WebView2 では xmlhttp.send(); でエラーとなる
js {
try {
var xmlhttp = hidemaruGlobal.createobject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "https://hide.maruo.co.jp/manual/index.html", false);
// if WebView2 M:/createobject_test.mac(6) +... TypeError: xmlhttp.send is not a function at eval (eval at <anonymous> (:2:1), <anonymous>:16:11) at <anonymous>:2:1
xmlhttp.send();
if (xmlhttp.status != 200) {
console.log("GET Error: " + xmlhttp.status + " " + xmlhttp.statusText);
} else {
console.log("GET Success: " + xmlhttp.status + " " + xmlhttp.responseText.length); // 取得した文字列長
}
} catch (err) { console.log("catch : " + err); }
}
|
|