[ 新規に投稿する ]

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のバージョンによって違うのかもしれないですが、何にしてもまずい問題なので、大丈夫なように修正します。
[ ]

[ 新規に投稿する ]