V9.21β2No.11128
秀丸担当 さん 23/03/01 15:47
 
V9.21β2を公開しました。
ブラウザ枠というコマンドを追加して、Webコンテンツを枠で表示できるようにして
います。
当初はJavaScriptでいろいろアクセスできるようなことも考えていたのですが、セキ
ュリティ的な観点もあって、やっぱり単純なブラウザだけにしてみています。

以下のページの「先行開発バージョンはこちら」からダウンロードできます。
https://hide.maruo.co.jp/software/hidemaru.html

32bit版:
https://hide.maruo.co.jp/software/bin3/hm921b2_signed.exe

64bit版:
https://hide.maruo.co.jp/software/bin3/hm921b2_x64_signed.exe

[ ]
RE:11128 V9.21β2No.11129
こみやんま さん 23/03/03 10:31
 
# ブラウザ機能関連

- 表示メニューの「ブラウザ枠」の「表示中」の「チェックマーク」が表示されない
ようです。

- 「document.documentElement.outerHTML」に相当する文字列を「取得」するものを
用意しても良いかもしれません。
 - 取得するだけではなく、DOM内容を「設定」するものを用意した方が良いですが、  
BASEURL相当をどう扱うのかという問題があります)

- ファイルなどを「ブラウザペインへとドラッグ&ドロップ」した場合、
現在秀丸の編集ペインで受け取っていますが、編集ペインではなく、  
ブラウザペインでキャッチした方が良さそうです。  
(もしくは裏では異なったとしてもあたかもブラウザペインがキャッチしたかのよう
な挙動にする)


[ ]
RE:11129 V9.21β2No.11130
こみやんま さん 23/03/03 11:04
 
あと可能なのであれば、ブラウザペインのスクロール位置を操作できる関数等があっ
た方が良いでしょう。

この際は、特に一番下の位置への「Scroll End」的な命令を送った際に
「ブラウザ上の表示がびくつかない」ようにすることが大切です。

このスクロール機能は一般的には、
ブラウザペインをプレビューペインとして利用した際などに、
「編集ペインでのカーソル位置」と「ブラウザペインのスクロール位置」を概ね合わ
せるといった際に利用することとなります。

[ ]
RE:11130 V9.21β2No.11131
秀丸担当 さん 23/03/03 13:45
 
ご指摘ありがとうございます。
表示メニューのチェックマークは確かにありませんでした。できるようにします。

document.documentElement.outerHTMLのようなソースを取得する方法は、あったらい
いですね。

コンテンツ上のJavaScriptは有効で、その代わりコンテンツ側からhidemaruオブジェ
クトなどのアクセスはできないです。
DOMの操作も含めてになると思いますが、秀丸エディタ側からコンテンツに対しての
一方的なJavaScriptの実行することは一応可能で、いわゆるブックマークレットのよ
うに実行が可能でした。
ようはセキュリティのレベルは普通のブラウザと同じにしようとしています。
アドレスの入力欄か、今回マクロ用にsetbrowserpaneurl $url;のような文も追加し
てみていますが、ここでURLを指定できます。
例えばURLを、javascript:window.scrollBy(0,100);にすると、スクロールできたり
します。

ファイルをドラッグ&ドロップして開けたりするのは、自分も使っていてあったらい
いと思いました。
できるように検討します。

[ ]
RE:11131 V9.21β2No.11132
こみやんま さん 23/03/03 18:17
 
>document.documentElement.outerHTMLのようなソースを取得する方法は、あったら
>いいですね。
>
>コンテンツ上のJavaScriptは有効で、その代わりコンテンツ側からhidemaruオブジ
>ェクトなどのアクセスはできないです。
>DOMの操作も含めてになると思いますが、秀丸エディタ側からコンテンツに対しての
>一方的なJavaScriptの実行することは一応可能で、いわゆるブックマークレットの
>ように実行が可能でした。
>ようはセキュリティのレベルは普通のブラウザと同じにしようとしています。
>アドレスの入力欄か、今回マクロ用にsetbrowserpaneurl $url;のような文も追加し
>てみていますが、ここでURLを指定できます。
>例えばURLを、javascript:window.scrollBy(0,100);にすると、スクロールできたり
>します。


あ、本当ですね、これ WebView2コンポーネントの ExecuteScriptAsync に流してい
るんでしょうか。
結構柔軟性がありますし、現行でもキレイに逐次スクロールさせることができますね。

[ ]
RE:11128 V9.21β2No.11133
こみやんま さん 23/03/05 20:50
 
WebView2コンポーネントがインストールされている場合、
ブラウザ枠が異常に高確率でバグりやすい状態になっているようです。

以下のリンク先に詳細を記載しています。

https://github.com/komiyamma/hm_browserpane_bug_01

[ ]
RE:11133 V9.21β2No.11135
秀丸担当 さん 23/03/06 09:57
 
大変詳しい情報ありがとうございます。
こちらでも再現できました。
問題ないように修正させていただきます。

ブラウザ枠のURLのjavascript実行は、マクロ上のWebView2のように複雑なことはし
ていなくて、httpやfileと同じようにURLを指定(Navigate)しているだけになってい
ます。
URL指定してから完了するまで待機しているのですが、成功時は完了まで待機、失敗
時は待機しないです。なのですが、コンテンツなしでいきなりjavascriptだと成功す
るのに完了が来ないようでした。
もしかしたらWebView2のバージョンによって違うのかもしれないですが、何にしても
まずい問題なので、大丈夫なように修正します。

[ ]