C# winform <-> javascript 연동

00_Develop_whOLE/C#-WinForm 2012. 6. 22. 16:24

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메세지로 출력됨.



설정

트랙백

댓글