이 문서에서는 .Net의 WebBrowser 컨트롤에 표시되는 HTML 파일에 포함된 Javascript가 C# 코드를 호출하는 방법을 설명합니다. 이제 Tencent의 뉴스 팝업 상자와 같은 클라이언트 프로그램에 웹 페이지를 삽입하는 것이 매우 일반적입니다.
.Net의 WebBrowser는 여전히 IE의 커널을 사용해야 합니다. IE에서 창 개체에는 외부 인터페이스를 제공하는 외부 특성이 있습니다. 호스트 코드를 실행할 수 있습니다. 이 속성을 통해 C# 메서드를 호출하려면 해당 호스트 개체가 ComVisible이어야 합니다. 예를 들어, Form에 WebBrowser 컨트롤을 배치하고 js가 호출할 OpenForm 메서드를 준비합니다.
[System.Runtime.InteropServices.ComVisibleAttribute( true)]
공개 부분 클래스 Main : KSBiz.UI.KSForm
{
public Main()
{
InitializeComponent()
}
//나머지는 생략됨
public void OpenForm(string s)
{
BasicInfo.CustomerList f = new StockManage.BasicInfo.CustomerList()
f.Show()
f.MdiParent = this;
webBrowser1.Visible = false;
}
}
다른 HTML 파일 준비:
HTML 파일에서 다음을 통해 C#을 호출할 수 있습니다. 위의 방법 방법.
FormLoad 이벤트에서 WebBrowser 컨트롤의 URL을 설정하고 스크립트 실행을 위한 호스트를 설정합니다.
private void Main_Load(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo("top.htm ");
// WebBrowser 컨트롤에 의해 표시되는 웹 페이지 경로
webBrowser1.Url = new Uri(file.FullName);
// 스크립트에서 액세스할 수 있도록 현재 클래스 설정
webBrowser1 .ObjectForScripting = this;
}
괜찮습니다.