ブラウザ枠内のHTMLリンクを開く方法をマNo.11166
western さん 23/04/03 15:07
 
ブラウザ枠内のHTMLリンクを開く方法をマクロで変更したいです

-1: 無視する (リンクを開かない)
 0: 既定のブラウザ枠で開く
 1: 共通ブラウザ枠で開く
 2: 個別ブラウザ枠で開く
 3: 外部の標準ブラウザで開く
 4: 特定のコマンドラインとして実行 (コマンドラインは別にマクロ命令で指定)

こんな感じで

[ ]
RE:11166 ブラウザ枠内のHTMLリンクを開くNo.11173
秀丸担当 さん 23/04/04 10:12
 
ブラウザ枠のリンクは、新しいウィンドウが出てしまうことがあるので、そのあたり
何かしら制御したいということがあります。
別話題のExecuteScriptの話と同じようなことになってしまいますが、リスクは避け
たいところです。
任意のコマンドなど間に挟まるのは避けて、確実に改変することなく別の方法で開く
というのならありかもしれないです。

新しいウィンドウはどうにかできたらと思いつつ、枠がどんどん増えるわけでもない
ので、具体的にどうするかというといい方法は思いついていなくて、どうしたものか
と思っています。
このままかもしれません。
もしかしたらブラウザ枠についていろいろ要望があっても、セキュリティ面では多く
は受けられないということが増えてしまうかもしれないです。すみません。

[ ]
RE:11173 ブラウザ枠内のHTMLリンクを開くNo.11177
western さん 23/04/04 17:26
 
https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/icorewebview2newwindowrequestedeventargs
リンクが別ウィンドウとして開いてしまう状況は NewWindowRequested でイベントを
監視してキャンセルし
「新しいウィンドウで開く」「このブラウザ枠で開く」「開かない」「このページで
は無視する」
といったダイアログ表示からの分岐で制御できると思われます。

秀丸アイコンのウェブブラウザがタスクバーに並んでいるのを見ると違和感がすごい
ですね

https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/icorewebview2downloadstartingeventargs
ファイルがダウンロードできてしまうのも便利なのか怪しすぎるのか悩ましいところ
です

https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/icorewebview2navigationstartingeventargs
私が要望した開き方の選択については NavigationStarting イベントを監視して、
遷移をキャンセルするなり、そこから任意の処理に流すだけで実現できると思います

この設定も全体とするのか、拡張子やマクロ別になるのか、インスタンス固有となる
のか、ページ遷移しても維持するのか、
悩ましいところですが #11175 の乱数カウンタ番号のロジックで安全な制御自体は容
易と思います

[ ]
RE:11177 ブラウザ枠内のHTMLリンクを開くNo.11183
秀丸担当 さん 23/04/05 10:14
 
新しいウィンドウの選択手段など、ありがとうございます。
選択できるようにするのがいいですね。
そういう感じでやってみようと思います。

[ ]