この機能を追加しようとしている場合
ブラウザコントロールがページを正常に読み込むことができるすべてのWebページにJavaスクリプトを挿入する必要があります。Javaスクリプトでは、window.externを使用します。あなたのコードの中でScriptNotify
関数を呼び出すように通知します。適切なメッセージが検出されたら、ブラウザコントロールの新しいインスタンスを作成しますそれを配列またはリストに追加します。これにより、アプリ内ブラウザコントロール用の新しいタブ機能をエミュレートできます。
JSコードは、私が上書きされている
void WebBrowser_ScriptNotify(object sender, NotifyEventArgs e)
{
if (e.Value == "addnewtab")
{
//do work here
}
}
注(IsScriptEnabled = True
を保つ)addnewtab
ためScriptNotifyチェックでbrowser.InvokeScript("eval", NEW_TAB_FUNCTION);
を使用して注入することができる。このString NEW_TAB_FUNCTION = "window.open = function(__msg){window.external.notify('addnewtab');};";
等であってもよい注入されますJSのwindow.open関数は、新しいWebページに毎回挿入され、ユーザーの入力を通知される関数を持っています。
また、これはWebブラウザーコントロールでのみ動作し、外部ブラウザーでは機能しません。
ブラウザ設定では、[新しいタブでリンクを開く]オプションがあります。私はそれがアプリによってオーバーライドされることがあるとは思わない。 – Osiris