この記事では、.Net の WebBrowser コントロールに表示される HTML ファイルに埋め込まれた Javascript が C# コードを呼び出す方法について説明します。 Tencent のニュース ポップアップ ボックスなどのクライアント プログラムに Web ページを埋め込むことは、現在では非常に一般的です。
.Net の WebBrowser は引き続き IE のカーネルを使用する必要があります。 IE では、ウィンドウ オブジェクトには外部インターフェイスを提供する外部属性があります。ホストコードを実行できます。このプロパティを通じて C# メソッドを呼び出すには、そのホスト オブジェクトが ComVisible である必要があります。たとえば、WebBrowser コントロールを Form に配置し、js が呼び出すメソッド OpenForm を準備します。
[System.Runtime.InteropServices.ComVisibleAttribute( true)]
public 部分クラス Main : KSBiz.UI.KSForm
{
public Main()
{
InitializeComponent()
}
//残りは省略
public void OpenForm(string s)
{
BasicInfo.CustomerList f = new StockManage.BasicInfo.CustomerList();
f.MdiParent = this;
webBrowser1.Visible = false;
}
}
別の HTML ファイルを準備します:
Welcome
顧客リスト HTML ファイルでは、上記のメソッドメソッド。
FormLoad イベントで、WebBrowser コントロールの URL を設定し、スクリプト実行のホストを設定します。
コードをコピーします
コードは次のとおりです。 private void Main_Load(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo("top.htm ");
// WebBrowser コントロールによって表示される Web ページのパス
webBrowser1.Url = new Uri(file.FullName);
// スクリプトからアクセスできるように現在のクラスを設定します
webBrowser1 .ObjectForScripting = this;
}
それでいいです。