>웹 프론트엔드 >JS 튜토리얼 >JavaScript 및 C# Windows와 상호 작용하는 방법 apps_javascript 기술

JavaScript 및 C# Windows와 상호 작용하는 방법 apps_javascript 기술

WBOY
WBOY원래의
2016-05-16 19:12:011262검색

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
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.