1. 웹페이지 만들기
🎜>
JavaScript 액세스 C# 코드
1. Windows 애플리케이션 프로젝트 생성
2. Form1 양식
3.
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
를 추가하여 클래스를 com에 액세스할 수 있도록 설정합니다. 이 선언을 하지 않으면 오류가 발생합니다. 오류 메시지는 다음과 같습니다.
예:
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
공개 부분 클래스 Form1: 서식
4. WebBrowser의 Url 및 ObjectForScripting 속성을 초기화합니다.
Url 속성: WebBrowser 컨트롤이 표시하는 웹 페이지의 경로
ObjectForScripting 속성: 이 개체는 WebBrowser 컨트롤에 표시되는 웹 페이지에 포함된 스크립트 코드로 액세스할 수 있습니다.
운영하려는 페이지의 URL 경로에 Url 속성을 설정합니다.
JavaScript는 window.external을 통해 C#에서 노출된 메서드를 호출합니다. 즉, ObjectForScripting 속성에 의해 설정된 클래스의 인스턴스에 포함된 공용 메서드입니다. 구체적인 설정 예는 다음과 같습니다.
System.IO.FileInfo file = new System.IO.FileInfo("index.htm")
// WebBrowser 컨트롤에 의해 표시되는 웹 페이지 경로
webBrowser1.Url = new Uri(file.FullName);
// 스크립트에서 액세스할 수 있도록 현재 클래스 설정
webBrowser1.ObjectForScripting = this;
5. C#은 JavaScript 메서드를 호출합니다.
WebBrowser 클래스의 Document 속성에 있는 InvokeScript 메서드를 통해 현재 웹 페이지의 JavaScript 메서드를 호출합니다. 예:
// JavaScript의 messageBox 메소드를 호출하고
object[]objects = new object[1]
objects[0] = "C# Access JavaScript script";
webBrowser1.Document.InvokeScript("messageBox",objects);
전체 코드는 다음과 같습니다.
[ System.Runtime.InteropServices.ComVisibleAttribute(true)]
공개 부분 클래스 Form1 : 양식
{
공개 Form1()
{
InitializeComponent();
System.IO.FileInfo file = new System.IO.FileInfo("index.htm")
// 표시되는 웹페이지 경로 WebBrowser 컨트롤
webBrowser1.Url = new Uri(file.FullName);
// 스크립트에서 액세스할 수 있도록 현재 클래스 설정
webBrowser1.ObjectForScripting = this;
}
private void button1_Click(object sender, EventArgs e)
{
// JavaScript messageBox 메소드를 호출하고 매개변수 전달
object[] object = new object[1];
object[0] = "C# access JavaScript script"
webBrowser1.Document.InvokeScript ("messageBox", object ; .Show(message);
}
}
Dnew.cn 참고: 원문: http://www.cnblogs.com /xds/archive/2007/03 /02/661838.html