• We just launched and are currently in beta. Join us as we build and grow the community.

Invoking JavaScript function from WinForms

TheReaper989

Multithreading Wizard
T Rep
0
0
0
Rep
0
T Vouches
0
0
0
Vouches
0
Posts
123
Likes
54
Bits
2 MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1 200 XP
I've been working on application that needs to load page and display it in WebBrowser control. Requirement was to allow interaction between WinForms application and web page.

Here I will show a sample application where JavaScript function is called from WinForms application.
For this Blog I will be using Google Web elements , Google Web Elements allow you to easily add your favorite Google products to your website.


Process can be described by following steps:

Create Windows Forms application
Drop WebBrowser control into Form
Create Html with JavaScript function you want to call

Calling JavaScript function from WinForms application isn't so difficult.
.NET WebBrowser control has property Document which gets an HtmlDocument representing the Web page currently displayed in the WebBrowser control.

Well this javascript part is not well written ,maybe my Web God-Like Buddy (Rustan) can clean this mess..lol

anyway here's the script

JAVASCRIPT

  1. <

    script type=

    "text/javascript"

    >

  2. google.load

    (

    "elements"

    ,

    "1"

    ,

    {

    packages:

    "keyboard"

    }

    )

    ;

  3. var

    kbd;

  4. function

    onLoad(

    )

    {
  5. var

    content =

    document.getElementById

    (

    'content'

    )

    ;
  6. // Create the HTML for out text area
  7. content.innerHTML

    =

    '<div>'

    +
  8. 'Demo of Invoking JavaScript using .NET'

    +
  9. '.</div>'

    +
  10. '<textarea id="t1" cols="47" rows="7"></textarea>'

    ;

  11. kbd =

    new

    google.elements

    .keyboard

    .Keyboard

    (
  12. [

    google.elements

    .keyboard

    .LayoutCode

    .ENGLISH

    ]

    ,
  13. [

    't1'

    ]

    )

    ;
  14. }

  15. function

    ChangeLayout(

    )

    {

  16. var

    LayOut=

    document.getElementById

    (

    'txtLang'

    )

    .value

    ;
  17. kbd.setLayout

    (

    LayOut)

    ;

  18. }


  19. function

    toggleVisible(

    )

    {

  20. if

    (

    kbd.isVisible

    (

    )

    )

    {
  21. kbd.setVisible

    (

    false

    )

    ;
  22. }

    else

    {
  23. kbd.setVisible

    (

    true

    )

    ;

  24. }
  25. }


  26. google.setOnLoadCallback

    (

    onLoad)

    ;

  27. </

    script>

So how can you call JavaScript functions in your WebBrowser control? Call the InvokeScript method on the HtmlDocument.

.NET CODE (winforms)

  1. Sub

    SHOW_HIDE_VIR_KEYBOARD(

    )
  2. With

    Me

    .

    WBrowser

  3. .

    Document

    .

    InvokeScript

    (

    "toggleVisible"

    , New

    Object

    (

    )

    {

    ""

    }

    )

    'call the javascript from the .htm files

  4. End

    With
  5. End

    Sub

  6. Private

    Sub

    Button1_Click(

    ByVal

    sender As

    System.

    Object

    , ByVal

    e As

    System.

    EventArgs

    )

    Handles

    cmdShow.

    Click
  7. SHOW_HIDE_VIR_KEYBOARD(

    )
  8. End

    Sub


  9. Private

    Sub

    ComboBox1_SelectedIndexChanged(

    ByVal

    sender As

    System.

    Object

    , ByVal

    e As

    System.

    EventArgs

    )

    Handles

    ComboBox1.

    SelectedIndexChanged
  10. With

    Me

    .

    WBrowser
  11. .

    Document

    .

    GetElementById

    (

    "txtLang"

    )

    .

    InnerText

    =

    Trim

    (

    Me

    .

    ComboBox1

    .

    Text

    )

    'parse data from winforms to Htm files
  12. .

    Document

    .

    InvokeScript

    (

    "ChangeLayout"

    , New

    Object

    (

    )

    {

    ""

    }

    )

    'call the javascript from the .htm files

  13. End

    With
  14. End

    Sub



Conclusions:

With the ability to call JavaScript from .NET App you can now embed and extend web applications into native applications with ease. A native application gives you more control over the environment and access to computer resources that you cannot access from a web page. You can Mashup web applications with computer hardware or software in new and interesting ways.

For the complete sample please download the demo project

For questions just Contact me @ the Addresses below:

mobile : +639399393702

http://www.emondsoft-solutions.com/

Facebook Fan Page

http://www.facebook.com/pages/emondsoft/120502167993693

Follow me on twitter:


Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.

FOR YOUR OWN SAFETY, PLEASE:

1. Re-scan downloaded files using your personal virus checker before using it.

2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.


Download
You must upgrade your account or reply in the thread to view hidden text.
 

452,292

323,341

323,350

Top