출처 : http://tarotcrd.tistory.com/154
C# winform 개발 중, webbrowser 컨트롤 사용시에 javascript와의 연동이 필요한 경우가 종종 있다.
java와의 상호연동에 대한 정리.
winform->javascript 호출
C#
private void button1_Click(object sender, EventArgs e)
{
try
{
webBrowser1.Document.InvokeScript("CallScript", new Object[] { "변수1","변수2" });
}
catch (Exception ex)
{
System.Diagnostics.Debug.Write(ex.Message);
}
}
javascript
function CallScript (var1, var2) {
document.write('var1 :' +var1 +' var2 :' + var2);
}
winform의 button1을 클릭하면 webbrowser에서 출력.
javascript->winform 호출
javascript
function SendMessage() {
var msg = "this is test message";
window.external.CallForm(msg);
}
C#
using System.Security.Permissions;
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
private void Form1_Load(object sender, EventArgs e)
{
webbrowser1.ObjectForScripting = this;
}
public void CallForm(Object msg)
{
System.Diagnostics.Debug.Write(msg.ToString());
}
javascript의 SendMessage 함수를 호출하면, WinForm의 Debug메세지로 출력됨.