C# 에서 제공하는 WebBrowser 컨트롤과 컨트롤안에 로드된 javascript 간의 통신방법이다.
1. javascript 에서 C# 호출방법
아래와 같은 선언이 필요하며, 호출될 메소드는 당연히 public 이어야 한다.
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
public partial class AppContainer : Form{
// .. 중략
/**
* 호출될 public 메소드
* 호출받은 값을 메세지 박스로 보여줌
*/
public void RecieveJs(Object msg)
{
MessageBox.Show(@"받은 값" + msg);
}
/**
* 아래와 같이 호출시 리턴도 가능하다.
* 디렉토리목록을 보여주고 선택한 디렉토리의 파일목록을 리턴함
*/
public string ShowDirectory()
{
var files = String.Empty;
var folderBrowser = new FolderBrowserDialog();
if (folderBrowser.ShowDialog() == DialogResult.OK)
{
files = String.Join(",", Directory.GetFiles(folderBrowser.SelectedPath));
}
return files;
}
}
2. C# 에서 javascript 호출
C# form의 textbox 두개의 값을 버튼 클릭시 javascript 로 보내는 예제이다.
invoikeScript 를 통해 호출할 function 명 및 parameter 를 전송한다.
// wb 는 WebBrowser 컨트롤 변수명
private void SendBtn_Click(object sender, EventArgs e)
{
if (wb.Document != null)
{
Object[] objArray = {textBox1.Text, textBox2.Text};
// javascript 의 recieveMessage function 을 호출함
wb.Document.InvokeScript("recieveMessage", objArray);
}
}
이상
'IT > C#' 카테고리의 다른 글
Control Docking (0) | 2014.12.02 |
---|---|
폼(Form) 이동 막기 (0) | 2014.12.02 |